C++ 的类可以看作是一种特别的数据类型。基本的结构如下:
Class 类名 {
Private:
XXXX //公有成员
Public:
YYYY://私有成员
Protected:
ZZZZ://保护成员
}
Public 成员相当于 Struct 结构体定义的,可以用 a.x 这种形式访问(public访问权限是全局的);
Private 成员不能直接被类的实体访问,也不能被子类的实体访问,但是可以被类的成员函数访问(private访问权限就是对内不设防,对外设防的);
Protected 成员不能被类的实体访问,但是可以被子类访问,也可以被类的成员函数访问(protected访问权限就是对内不受保护,对外受保护的)
这样设计的目的是:
1、访问权限作用,保护内部资源
(1)private的成员是class内部使用,外部没必要直接访问(读取或赋值),所以干脆在语法上让你看不见
(2)访问权限的保护是一种语法层面的保护,而非硬件上限制访问,硬件做不了这么细致
(3)最终目的也是为了整个程序更安全
2、访问权限作用, 隐藏外部无需关心的细节
(1)将class内部使用而外部绝不会用到的成员变量隐藏起来,以免干扰外部或者不小心被外部修改了
(2)隐藏细节可以降低使用类库的人的难度,调用时只看到对我有用的东西
(3)这个隐藏其实是把class的作者和使用者专业分工,是很有必要的
3、这就是面向对象的封装特性
(1)封装特性的体现之一就是抽象,抽象的一层意思就是隐藏掉不必要的细节
(2)封装特性的体现之一就是组织和保护,便于整个整体和外部更合理的交流
参考:
- https://c.biancheng.net/view/2217.html C++类成员的访问权限以及类的封装
- https://blog.csdn.net/weixin_39270987/article/details/108669956 C++类详解(public、private、protected)
- https://blog.csdn.net/qq_45544223/article/details/107043760 【C++的面向对象】------- 类成员的访问权限