//add helo 2014.6.4
类成员的访问位置:
1.类定义范围内,主要是指函数定义的范围内,该范围内类成员访问无限制。
2.类定义范围外,如在main()函数中访问,有访问权限限制。
//add end
1.用户访问继承类对象权限:
即在类定义外访问类对象成员数据或调用成员函数,例如如下代码:
1 class base 2 { 3 public: 4 int item_public; 5 private: 6 int item_private; 7 }; 8 9 int main() 10 { 11 base a; 12 //用户访问类对象成员 13 a.item_public=0;//ok, 访问权限为public 14 a.item_private=1; //error, 访问权限为private 15 }
a.用户访问继承类对象的成员时,可将类成员分为两类
- 继承类自定义成员:由继承类定义的权限决定
- 基类成员:由继承方式决定访问权限
class base { public: int item_public; protected: int item_protected; }; class derived :private base { public: int item_d_public; int func() { return item_public;//基类成员相对继承类成员的访问权限不因继承的方式改变 } } int main() { derived d; d.item_d_public //ok; d.item_public //error ,此处item_public 对于用户的权限为private //继承方式影响用户调用继承类对象基类部分的权限 }
b.继承方式影响用户调用继承类对象基类部分的权限,继承类内访问基类成员的权限不改变。
2.成员访问的几种方式
- 类内成员访问:类成员函数访问自己的成员变量,无权限限制。类成员函数访问基类成员,由基类访问控制权限决定。
- 用户访问对象成员:如前。