今天看QT教程的时候碰到继承的关系,莫名奇妙的被教程给说“懵”了(其实就是自己没有记牢,才会出现恍惚,嘿)
于是查看网上资料写的都混乱(看到“不能访问”,到底谁不能访问?????),本打算去看标准C++定义,算了还是自己编码实验吧(以事实说话,O(∩_∩)O~)
总结如下:
基类的私有成员 永远归基类所有(即只有基类的成员函数可以访问)
派生类 如果是 公有继承(public) 基类
则: 基类的公有成员和保护成员 成为 派生类的公有成员 和 保护成员(也就意味着可以通过继承来的成员函数访问基类的私有成员)
注意: 派生类的实例只能直接访问公有成员(即自身定义的公有成员和继承来的公有成员,而继承来的保护成员无法直接访问)
派生类 如果是 保护继承(protected) 基类
则: 基类的公有成员和保护成员 都成为 派生类的保护成员 (也就意味着可以通过继承来的成员函数访问基类的私有成)
注意:派生类的实例只能直接访问公有成员(即自身定义的公有成员,而继承来的都成为保护成员而无法直接访问)
派生类 如果是 私有继承(private) 基类
则: 基类的公有成员和保护成员 都成为 派生类的私有成员 (也就意味着可以通过继承来的成员函数访问基类的私有成员)
注意:派生类的实例只能直接访问公有成员(即自身定义的公有成员,而继承来的都成私有成员而无法直接访问)
对于多层继承 :
例如: B 继承 C , C 继承 A --------------- 访问规则如上。
如写的错误的地方希望大家不吝指出,好让我也知道自己的错误。