- A+
所属分类:C++
私有成员变量
Private是针对类的,而不是对象,同一个类的对象之间是可以互相访问私有成员变量的,子类都无法直接访问父类的private成员。如下图代码,p[0]和b都同为类A的对象,将b作为参数传给p[0]对象的函数g,在函数g中,实现了对b的私有成员i的访问,这说明,c++中,权限是针对类而言的。
权限限制时间
权限的限制只是在代码的编译时期,这意味着,只有编译器会对访问权限进行检查,而到了运行时刻,不会再对权限进行检对查。
Friends
如果A声明了B是A的friend,那么,B便可以访问A的私有成员。
g函数、Y::f函数、Z的所有成员、h函数对X的私有成员i具有访问权限。
Struct和Class区别
如果没有对成员变量或者函数显式的声明权限属性的时候,Struct默认为public,Class默认为private。
private、protected、public使用tips
- private:成员变量都是paivate类型,哪怕是子类都无法直接触碰父类的成员
- public:需要给所有人用的函数使用public修饰
- protected:留一些protected的函数给子类,以方便子类对private成员变量进行访问,这些函数只留给子类,别人无法使用