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

C++——视频问题总结

1、C和C++的区别

CC++
面向过程对象
注重程序的实现逻辑程序的整体设计
内容C语言采用了一种有序的编程方法——结构化编程:将一个大型程序分解为一个个小型的,易于编写的模块,所有模块有序调动,形成了一个程序的完整的运行链C++将问题分解为各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题中的行为,更注重程序的整体设计,方便程序的后期维护、优化和管理,让一个功能尽可能的通用。应对需求的变化,本意是处理大型复杂系统的设计和实现
优点性价比比面向对象,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素易维护易复用易扩展,由于面向对象有封装、继承、多态的特性,可以设计出低耦合的系统,使系统更加灵活,更加易于维护
缺点没有面向对象易维护、易复用、易扩展因为类调用时需要实例化,开销比较,比较消耗资源,性价比比面向过程低

2、C++面向对象有哪些特征

封装封装是指将对象的属性和方法结合成一个独立的系统单位,隐藏对象的内部细节,只保留有限的对外接口,这样可以保护数据不受外部随意访问或修改,同时简化编程接口,提高代码的可维护性和安全性
继承继承允许一个(子类)继承另一个类(父类)的属性和方法,这样可以实现代码的重用,提高开发效率,在C++中,继承分为公有继承、保护继承和私有继承,分别定义了基类成员在派生类中的访问权限
多态多态指在一般类中定义的属性或行为被特殊类继承后,可以具有不同的数据类型或表现出不同的行为,这样可以在不改变程序结构的情况下,使用相同的方式调用不同对象的方法,C++中支持两种多态性,编译期多态和运行期多态。编译器多态通过函数重载实现,运行期多态通过虚函数实现

3、堆和栈的区别

存放变量类型全局变量局部变量
存放内容需要动态分配的数据结构,如字符串、对象和动态数组函数调用时的临时变量、函数返回地址等信息,主要用于内存的临时分配
内存区域不连续,(链表存储空闲内存地址)连续
管理方式程序员自行负责,使用后必须手动释放按照”先进后出“的原则进行管理
申请效率
生长方向向高地址扩展数据结构向低地址扩展数据结构
空间大小空间较大空间较小
申请大小动态申请释放,没有特定限制操作系统指定大小,被操作系统限制
分配方式当关键字malloc或new执行时,才会被分配空间,只能动态分配当函数被执行时,形参和函数内部的局部变量会一起被创建出来,可以动态和静态分配
访问方式只能用指针读取数据可以使用变量名或指针读取数据
存在周期存在时间较长,需要人为清理和回收存在时间取决于存在作用域,当执行程序离开时,该所在的作用域将被回收
稳定性不稳定,容易造成内存泄露稳定


http://www.kler.cn/a/394761.html

相关文章:

  • 2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享
  • WebLogic 介绍
  • 传奇996_19——常用函数
  • 微信小程序的主体文件和页面文件介绍
  • 时序论文20|ICLR20 可解释时间序列预测N-BEATS
  • 蓝桥杯c++算法学习【2】之搜索与查找(九宫格、穿越雷区、迷宫与陷阱、扫地机器人:::非常典型的必刷例题!!!)
  • 猎板PCB罗杰斯板材的应用案例
  • 【填鸭表单】TDuckX-v2.0发布!
  • 【深度学习】神经网络优化方法 正则化方法 价格分类案例
  • 力扣-Mysql-3322- 英超积分榜排名 III(中等)
  • PyTorch——从入门到精通:PyTorch简介与安装(最新版)【PyTorch系统学习】
  • golang分布式缓存项目 Day4 一致性哈希
  • 前端权限控制代码
  • 计算机毕业设计 | SpringBoot社区物业管理系统 小区管理(附源码)
  • 14.最长公共前缀-力扣(LeetCode)
  • CSS:怎么把网站都变成灰色
  • uniapp解析蓝牙设备响应数据bug
  • 3588 yolov8 onnx 量化转 rknn 并运行
  • spark的学习-06
  • k8s 1.28.2 集群部署 docker registry 接入 MinIO 存储
  • leveldb存储token的简单实现
  • 数据结构-布隆过滤器和可逆布隆过滤器
  • vue中 通过cropperjs 实现图片裁剪
  • 开源项目低代码表单设计器FcDesigner扩展右侧组件的配置规则
  • Spring Cloud Gateway(分发请求)
  • 边缘提取函数 [OPENCV--2]