从事实时计算多年,熟悉jstorm/spark/flink/kafka/rocketMq, 热衷于开源,希望在这里和前辈们一起学习与分享,得到长足的进步!邮箱:hustfxj@gmail.com 我的githup地址是:https://github.com/hustfxj。欢迎和大家一起交流探讨问题。
分类: C/C++
2013-10-28 15:07:11
①如果是public继承,基类的public成员为派生类的public成员,基类的protected成员为派生类的protected成员。
②如果是pprotected继承,基类的public成员和protected成员在派生类中为protected成员。
③如果是private继承,基类的public成员和protected成员在派生类中为private成员。
注意这里private继承的时候,private的成员是可以访问基类中public和protected成员的。但是是在定义的接口中访问,不是对象直接访问。
点击(此处)折叠或打开
这段程序是正确的!
那么protected继承和private继承的区别在哪里?关键在于派生类的派生类的访问权限不一样。如下面两段程序:
点击(此处)折叠或打开
如果进行private或protected继承,则基类成员的访问级别在派生类中比在基类中更受限:
点击(此处)折叠或打开
点击(此处)折叠或打开
用struct和class保留字定义的类具有不同的默认访问级别。同样,默认继承访问级别根据使用哪个保留字定义派生类也不相同。使用class保留字定义的派生类默认具有private继承,而用struct保留字定义的类默认具有public继承: 有一种常见的误解认为用struct保留字定义的类与用class定义的类有更大的区别。实际上它们唯一的不同只是①默认的成员保护级别和②默认的派生保护级别,除此之外,再也没有其他的区别。
点击(此处)折叠或打开