面试题答案
一键面试- public继承:
- 派生类对象可以访问虚基类的public成员。因为public继承保持了基类成员在派生类中的访问权限,所以虚基类的public成员在派生类中仍是public,可被派生类对象访问。
- 派生类对象不能访问虚基类的private成员。private成员对于类外部(包括派生类对象)始终是不可访问的。
- 派生类对象不能直接访问虚基类的protected成员。protected成员只能被派生类的成员函数和友元函数访问,而不能被派生类对象直接访问。
- private继承:
- 派生类对象不能访问虚基类的任何成员(public、private、protected)。因为private继承会将基类的所有成员(除了构造函数和析构函数)在派生类中变为private,而private成员对于类外部(包括派生类对象)是不可访问的。
- protected继承:
- 派生类对象不能访问虚基类的任何成员(public、private、protected)。protected继承将基类的public和protected成员在派生类中变为protected,而protected成员不能被派生类对象直接访问,private成员同样不可访问。