C++中类访问权限的控制,private、public、protected可被访问的范围:
(1)没有继承的情况
private:
只能由该类中的函数和友元函数(friend function)访问,不能被任何其他的函数访问,该类的对象也不行。
protected:
可被该类中的函数及其友元函数(friend function)访问(成功继承该类中protected修饰的属性或方法的子类也可以访问),不能被该类的对象访问。
public:
可被该类中的函数、子类中函数和友元函数访问,也可被该类的对象访问。
(2)有继承的情况
类被继承后子类的方法属性的访问权限会发生变化:protected继承和private继承能降低访问的权限。
使用private继承,父类中的protected和public属性在子类中变为private;
使用protected继承,父类中的protected和public属性变为protected;
使用public继承,弗雷中的protected和public属性不发生改变;
注:父类中的private属性是不能被继承的。
(3)一些关于访问权限的讨论
1.访问权限是对外的,在类自己内部不存在“private”
2.该类的对象是可以访问类中的私有属性和方法的,只不过不是直接访问(可以通过访问该类中的public和prot方法来间接实现);
3.留待补充...