考虑从基类B派生出的类D:
——如果B是private基类,那么它的public和protected成员只能由D的成员函数和友元访问。
只有D的成员和友元能将D*转换成B*。
——如果B是protected基类,那么它的public和protected成员只能由D的成员函数和友元,
以及由D的派生出的子类的成员函数和友元访问。只有D的成员
函数和友元以及由D派生出的子类的成员函数和友元能将D*转换成B*。
——如果B是public基类,那么它的public成员函数可以由任何函数访问。除此之外,它的
protected成员能由D的成员函数和友元,以及由D派生出的类的成员函数和友元访问。
任何函数都能将D*转换成B*。
public派生使派生类成为基类的一个子类型,这是最常用的派生形式。
其他继承方式的使用,需要根据具体的设计来确定。通常是需要限制外界客户对基类访问权限时,
使用private继承或者protected继承。
参考文献:
《C++程序设计语言》