曲径通幽论坛

标题: 保护继承 [打印本页]

作者: easy    时间: 2013-12-13 09:19
标题: 保护继承
保护继承是私有继承的变体,它使用 protected 关键字:
  1. class Student : protected std::string, proteced std::valarray<double> { }
复制代码
使用保护继承时,基类的公有成员和保护成员都将成为派生类的保护成员。

在使用私有继承时,第三代类将不能使用基类的接口,这是因为基类的公有方法在派生类中将变成私有方法。
在使用保护继承时,基类的公有方法在第二代中将变成受保护的,因此第三代派生类可以使用它们。

关于 protected 的更多信息,还可以参考《使用保护成员(protected)》。


下面对公有、私有和保护继承做了总结:
特征
公有继承
保护继承
私有继承
公有成员变成--> 派生类的公有成员派生类的保护成员 派生类的私有成员
保护成员变成--> 派生类的保护成员派生类的保护成员 派生类的私有成员
  私有成员变成--> 只能通过基类接口访问只能通过基类接口访问 只能通过基类接口访问
能否隐式向上转换是(只能在派生类中)


隐式向上转换(implicit upcasting)意味着无需进行显示类型转换,就可以将基类指针或指向派生类对象。







欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2