当前位置: 首页 > news >正文

封装——C++

封装

面对对象有三大特性,封装,继承,多态,在类和对象阶段主要先了解封装

封装的定义:

数据操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互

封装本质上是一种管理,让用户更方便使用类,就比如电脑,它有显示屏,外壳,鼠标,键盘,CPU,磁盘等设备,但是我们可以通过鼠标和键盘来操作电脑,这就是对外的接口,实际工作的是内部设备,不能让用户直接手搓二极管,对于计算机使用者而言,不用关心内部核心部件,比如主板上线路是如何布局的,CPU内部是如何设计的等,用户只需要知道,怎么开机、怎么通过键盘和鼠标与计算机进行交互即可

在C++语言中实现封装,可以通过将数据以及操作数据的方法进行有机结合,通过访问权限来隐藏对象内部实现细节,控制哪些方法可以在类外部直接被使用

class Stack {
public:
	void Init();
	void Push(int val);
	void CheckCapacity();
	void Pop(int index);
	void Print();
	void Destory();
private:
	int* _a;
	int _top;
	int _capacity;
};

在C语言中学习建立一个栈,我们可以在结构体外随意操控数据,过于随意,C++就比较严谨,把数据放在无法在类外直接修改的private,我们可以通过public里的接口来修改private里的数据,在类外你甚至访问的权限都没有,显示里面的数据也需要通过接口来实现

相关文章:

  • 【Java高级】框架底层基础:Java的反射机制剖析
  • verilog移位寄存器实现序列检测
  • 前端性能优化方法与实战02 性能瓶颈点:从 URL 输入到页面加载整过程分析
  • 34.0、C语言——C语言预处理(2) - 预编译(预处理)详解(2)
  • ES优化实战 - 小操作节省百分之三十以上的磁盘空间
  • [Go WebSocket] 多房间的聊天室(五)用多个小锁代替大锁,提高效率
  • 我在windows环境下的YOLOV3环境搭建过程
  • bat goto 还是 call
  • JVM垃圾回收系列之垃圾收集算法
  • 计算机毕业设计选题推荐 40个高质量计算机毕设项目分享【源码+论文】(三)
  • BDD - SpecFlow BDD 测试实践 SpecFlow + MSTest
  • CRM项目记录(四)
  • React组件的生命周期函数
  • FFmpeg源码分析:avformat_open_input()打开媒体流
  • 深入理解关键字 一(auto,register,static,sizeof)
  • [LeetCode] Wiggle Sort
  • 【前端学习】-粗谈选择器
  • 3.7、@ResponseBody 和 @RestController
  • css的样式优先级
  • CSS实用技巧
  • input的行数自动增减
  • Invalidate和postInvalidate的区别
  • Java 网络编程(2):UDP 的使用
  • JavaScript创建对象的四种方式
  • PAT A1120
  • PHP的类修饰符与访问修饰符
  • Python学习之路16-使用API
  • Spring-boot 启动时碰到的错误
  • 经典排序算法及其 Java 实现
  • 力扣(LeetCode)965
  • 判断客户端类型,Android,iOS,PC
  • 悄悄地说一个bug
  • 三栏布局总结
  • 写给高年级小学生看的《Bash 指南》
  • k8s使用glusterfs实现动态持久化存储
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​比特币大跌的 2 个原因
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (剑指Offer)面试题34:丑数
  • (论文阅读40-45)图像描述1
  • (南京观海微电子)——I3C协议介绍
  • (五)Python 垃圾回收机制
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net程序集学习心得
  • ::before和::after 常见的用法
  • [30期] 我的学习方法
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn