公有继承(public)
1、基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可直接访问。
2、派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。
3、 通过派生类的对象只能访问基类的public成员。
私有继承(private)
1、基类的public和protected成员都以private身份出现在派生类中,但基类的private成员不可直接访问。
2、派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。
3、通过派生类的对象不能直接访问基类中的任何成员。
保护继承(protected)
1、 基类的public和protected成员都以protected身份出现在派生类中,但基类的private成员不可直接访问。
2、派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。
3、 通过派生类的对象不能直接访问基类中的任何成员
可以用一个表格说明以上问题:
基类中的成员 | 在公有派生类中的访问属性 | 在私有派生类中的访问属性 | 在保护派生类中的访问属性 |
---|---|---|---|
私有成员 | 不可访问 | 不可访问 | 不可访问 |
公有成员 | 公有 | 私有 | 保护 |
保护成员 | 保护 | 私有 | 保护 |