private,public,protected属性和方法的访问范围.
private:
只能由1.该类中的函数、2.其友元函数访问。(属性和方法派生类都不可以访问,不管是什么继承)
不能被任何其他访问,该类的对象也不能访问。
protected:
可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。
但不能被该类的对象访问。
public:
可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。
注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。
摘自:https://blog.csdn.net/qq_31930499/article/details/80292637
C++中公有继承、保护继承、私有继承的区别
公有继承时基类中各成员属性保持不变,基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员。
私有继承时基类中各成员属性均变为private,并且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。
保护继承时基类中各成员属性均变为protected,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
基
|
摘自:https://www.cnblogs.com/xuelisheng/p/9231764.html
总结:由上表可知:
访问权限:只有公有继承中,派生类对象才能访问基类public成员(见上表①)
,其他任何情况都无法访问。而派生类
成员不论是何种继承,都可以访问基类的public和protected成员(见上表②)
。
派生类成员属性:公有继承时,派生类成员属性和基类成员属性完全一样(见上表③
)。私有继承和保护继承时,派生类成员属性则和继承方式一样。