2、类成员访问控制
1、可选的范围(访问控制关键字)
在类中,可以指定成员的访问范围:
private://私有成员,只能在成员函数内访问
public://公有成员,可以在任何地方访问
protected://保护成员
2、class中缺省访问控制关键字
如果类中的成员没有指定范围控制关键字,那么缺省访问控制关键字的成员被认为是私有成员。
3、类的成员函数内部、类外部函数可访问的范围
(1)类的成员函数内部可访问范围:
- 当前对象的全部属性、 函数;
- 同类其它对象的全部属性、 函数
(2)全局函数可访问范围:
- 只能够访问该类对象的公有成员
4、class与struct关键字区别
- 在class中缺省访问控制关键字时,那么缺省访问控制关键字的成员被认为是私有成员。
- 在struct中缺省访问控制关键字时,那么缺省访问控制关键字的成员被认为是共有成员。
除上述两点之外,C++中,class与struct关键字再无其他区别。
5、对于设置访问控制关键字的建议
- 一般成员变量设置为私有成员。
- 一般成员函数设置为公有成员。
- 构造函数最好设置成共有成员,否则只能在类成员函数内部创建对象。
6、隐藏
设置私有成员的机制,叫“隐藏”。“隐藏”的目的是强制对成员变量的访问一定要通过成员函数进行,那么以后成员变量的类型等属性修改后,只需要更改成员函数即可。否则,所有直接访问成员变量的语句都需要修改。
例如:通过隐藏机制防止数组越界。
因为我们访问私有成员,需要通过共有成员函数,因此我们只需要在共有成员函数中检查数组是否越界便可,越界的话可以在类的成员函数内部做相应的处理。