众所周知
public继承时,所有的基类成员的访问属性在派生类中不会改变。派生类中只能访问基类的public和protected成员,不能访问private成员;在外部派生类对象只能访问public的成员;protected继承时,基类的public成员到派生类中变成protected,其余成员的属性不变。派生类只能访问基类的public和protected成员;在类的外面,派生类无法访问基类的任何成员。
但覆写抽象类(形状)的纯虚函数(求面积)时,想在派生类(三角形)的外面调用成员(求面积)。如果基类求面积的方法位于 protected 域,此时需要把覆写的成员移动到 public 域下面,这样好吗?还是说,采取某些手段,仍然保持覆写的成员在 protected 域下面?
如果看不懂本文提到的概念,请回去补C++基础。