我自己总结过,书上也有:
共有继承:
1 共有继承不改变基类成员在派生类中的访问权限。在共有继承下,基类的public成员,protect成员,private成员在派生类中保持它们在基类中相同的访问权限。
2 在派生类中定义的成员函数不能直接访问基类的私有成员,只能通过public或protect成员函数访问。
私有继承:
1 基类的private和protect都在派生类中变成了private成员,不能被派生类的外部函数访问。
2 派生类的成员函数不能访问基类的private成员,但可以访问基类的public和protect成员,并通过它们访问基类private成员。
公有继承就是is-a关系,私有继承就是has-a关系。
详细参加Effective c++第三版,上面讲这个讲得相当之详细。
class D : public class B
{};
B中的public成员protected成员在D中分别为public和protected, B中private成员在D中不可见。
class D : private class B
{};
B中的public成员protected成员在D中均为private, B中private成员在D中不可见。
对成员变量、函数的访问控制有区别
具体可以查下相关的书