Q&A
Q: class D2 inherits from class D1, which
inherits from class Base. To keep D2 from
accessing the public members in Base, what access specifier
would you use and where would you use it?
: the relationship between D1 and Base
should be private to restrict class D2 from accessing the
public members of Base.
Q: why don't use protect?
A: protect lets the derived class access all public and protected members in Base.
classes inherit private by default, if the derived had been a struct, that inheritance would've been public.