2、类成员访问控制

1、可选的范围(访问控制关键字)
在类中,可以指定成员的访问范围:

	private://私有成员,只能在成员函数内访问
	public://公有成员,可以在任何地方访问
	protected://保护成员

2、class中缺省访问控制关键字
如果类中的成员没有指定范围控制关键字,那么缺省访问控制关键字的成员被认为是私有成员。
3、类的成员函数内部、类外部函数可访问的范围
(1)类的成员函数内部可访问范围:

  • 当前对象的全部属性、 函数;
  • 同类其它对象的全部属性、 函数

(2)全局函数可访问范围:

  • 只能够访问该类对象的公有成员

4、class与struct关键字区别

  • 在class中缺省访问控制关键字时,那么缺省访问控制关键字的成员被认为是私有成员。
  • 在struct中缺省访问控制关键字时,那么缺省访问控制关键字的成员被认为是共有成员。

除上述两点之外,C++中,class与struct关键字再无其他区别。
5、对于设置访问控制关键字的建议

  • 一般成员变量设置为私有成员。
  • 一般成员函数设置为公有成员。
  • 构造函数最好设置成共有成员,否则只能在类成员函数内部创建对象。

6、隐藏
设置私有成员的机制,叫“隐藏”。“隐藏”的目的是强制对成员变量的访问一定要通过成员函数进行,那么以后成员变量的类型等属性修改后,只需要更改成员函数即可。否则,所有直接访问成员变量的语句都需要修改。

例如:通过隐藏机制防止数组越界。
因为我们访问私有成员,需要通过共有成员函数,因此我们只需要在共有成员函数中检查数组是否越界便可,越界的话可以在类的成员函数内部做相应的处理。

原文地址:https://www.cnblogs.com/lasnitch/p/12764263.html