C++ 类访问控制

访问控制关键字

  1. public
  • 其后声明的所有的成员可以被所有人访问。
  1. priveta
  • 除了该类型的创建者和类的内部成员函数之外,任何人都不能被访问
  1. protected
  • 继承的结构可以访问protected成员,但是不能访问private成员。

友元

  • 允许显式地不属于当前结构的一个成员函数访问当前结构中的数据,他可以在该机构内部声明这个函数为friend(友元)一个friend 必须在一个结构内声明
  • 一个函数被声明为friend,就意味着它不是这个类的成员函数,但是确可以修改该类的私有成员,而且必须被列在该类的定义当中,因此可以认为他是一个特权函数。
  • friend 关键字,是为了解决一些实际问题,这也说明了这个语言是不纯的。(不是完全的面向对象语言)

对象布局

  • 访问说明符是结构的一部分,但是并不影响从这个结构创建对象,程序开始运行之前,所有的访问说明信息都消失了。访问说明信息是在编译期间消失的,在程序的运行期间,对象编程了一块储存区域。

  • class 和 struct 区别,class的成员默认为private,而struct的成员默认为public
  • 访问控制的真正价值体现在开发阶段中的防止越界。
  • 只有编译器知道类成员的保护级别。所有所有的访问保护检查都是由编译器来完成的,在运行期间不再检查。

你可能感兴趣的:(C++ 类访问控制)