对于C++保护继承方式的一点理解
来源:互联网 发布:八字网站 知乎 编辑:程序博客网 时间:2024/05/29 10:45
最近在某书上看到这样一句话--“所以,在保护继承时,基类的成员也只能由直接派生类访问,而无法再往下继承。”
有图有真相,上个书的截图如下:
对此,我疑问不解,一直觉得只是将public,降级到了protected,怎么会“只能由直接派生类访问,而无法再往下继承”呢??我编了如下代码为验证这个问题:
class Base
{
public:
void print()
{
cout << "class Base" << endl;
}
Base()
{
i = 10;
}
protected:
int i;
};class Drived: protected Base
{
public:
void print()
{
cout << "class Drived: public Base" << endl;
}
};class DrivedSub: protected Drived
{
public:
void print()
{
cout << "Sub drived class is " << i << endl;
}
};int _tmain(int argc, _TCHAR* argv[])
{DrivedSub ds;
ds.print();
return 0;}
结果正确的输出:Sub drived class is 10
说明在protected继承时,间接的子类中是可以访问基类的protected的。同理,public成员也是可以访问的。
以上仅一家之言,欢迎大家拍砖。
百度搜了一下,错误的文章还不少,大家都是抄来抄去的:
http://www.baidu.com/s?tn=baiduhome_pg&bs=protected%C1%BD%B4%CE%BC%CC%B3%D0&f=8&rsv_bp=1&wd=%CB%F9%D2%D4%A3%AC%D4%DA%B1%A3%BB%A4%BC%CC%B3%D0%CA%B1%A3%AC%BB%F9%C0%E0%B5%C4%B3%C9%D4%B1%D2%B2%D6%BB%C4%DC%D3%C9%D6%B1%BD%D3%C5%C9%C9%FA%C0%E0%B7%C3%CE%CA&inputT=26943
http://media.openonline.com.cn/media_file/200708/fushi/0803/C++yuyancxsj/web/lesson/chapter18/j6.htm
http://hi.baidu.com/rainysky_2006/blog/item/c9dfdb3dceb270c79e3d6230.html
http://hi.baidu.com/wentaokou/blog/item/a2541ccfff26ac0e93457ef6.html
- 对于C++保护继承方式的一点理解
- 对于继承的理解
- 对于继承的理解
- 对于anchorPoint的一点理解
- 对于handler的一点理解
- 对于Session的一点理解
- 转:对于继承的理解
- 对于继承封装的理解
- C++继承的一点理解
- Android: 对于Handler的一点理解。
- 对于POJ 1011的一点理解
- 我对于KMP算法的一点理解
- 对于cc2530GPIO中断的一点理解。
- 对于alphago文章的一点理解
- 对于数据库范式的一点理解
- 对于长期学习方式的一点看法
- 对于application一点理解
- 继承方式对于访问权限的影响
- 5.1--5.1.1 Inversions 反序(上)
- 创业心德
- 窗体位置和大小控制
- DesignPattern-Simple Factory
- 在hibernate中session.load和session.get的不同
- 对于C++保护继承方式的一点理解
- 基于Socket的UDP和TCP编程介绍
- DOS命令大全:使用命令重定向操作符 (Redirection Operators)命令详解
- MyEclipse8.6 安装SVN的两种方法
- GNUC扩展语法
- 关于struts2中对 request /session/ application 的访问
- 排序算法之二——合并排序
- 让你看看未来,Nsquared真正实现了无缝计算(视频)
- MFC 如何设置鼠标的形状 如何设置光标热区