曲径通幽论坛
标题:
保护继承
[打印本页]
作者:
easy
时间:
2013-12-13 09:19
标题:
保护继承
保护继承是
私有继承
的变体,它使用
protected
关键字:
class Student : protected std::string, proteced std::valarray<double> { }
复制代码
使用保护继承时,基类的公有成员和保护成员都将成为派生类的保护成员。
在使用私有继承时,第三代类将不能使用基类的接口,这是因为基类的公有方法在派生类中将变成私有方法。
在使用保护继承时,基类的公有方法在第二代中将变成受保护的,因此第三代派生类可以使用它们。
关于 protected 的更多信息,还可以参考《
使用保护成员(protected)
》。
下面对公有、私有和保护继承做了总结:
特征
公有继承
保护继承
私有继承
公有成员变成
-->
派生类的公有成员
派生类的保护成员
派生类的私有成员
保护成员变成
-->
派生类的保护成员
派生类的保护成员
派生类的私有成员
私有成员变成
-->
只能通过基类接口访问
只能通过基类接口访问
只能通过基类接口访问
能否隐式向上转换
是
是(只能在派生类中)
否
隐式向上转换(implicit upcasting)意味着无需进行显示类型转换,就可以将基类指针或指向派生类对象。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2