前言:
封装是C++面向对象编程的三大特性之一,(另外两个分别是继承和多
态),可以把数据(属性)和操作数据的函数保护起来,同时对外隐藏实现细节,只暴露安全接口。
两大作用:
一:禁止外部直接修改内部敏感数据(属性),防止非法访问,错误赋值。
二:外部只需调用接单接口,无需关心内部实现细节。
C++实现分装的关键:
| 修饰符 | 权限 | 作用 |
|---|---|---|
| public(公有) | 类内部+外部都可以访问 | 提供外部使用的接口 |
| private(私有) | 只有类内部可以访问 | 提供核心数据实现细节 |
| protect(保护) | 类内部+子类可以访问 | 主要用于继承 |
注意:class的默认成员属性是私有,struct的默认成员属性是公有,二者的区别也就只有这个。
classA{public://外部可用接口intAdd(constinta,constintb){return_Add(a,b);}private:int_Add(int_a,int_b){return_a+_b;}int_a;int_b;protected:intc;};小Tip:私有成员_Add,命名看公司,myAdd、公司前缀+Add都可能。
封装的优势总结:
- 保护数据:杜绝外部修改内部数据,避免程序出错。
- 可维护性搞:内部实现操作可以乱改,接口不变,外部无需修改。
- 使用简单:外部调用接口无需理解操作的实现。
想深入了解c++分装,后续可以浏览c++封装的核心操作。