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

【C++/嵌入式笔试面试八股】一、24.智能指针 | 其他

智能指针

43.C++中的智能指针是什么?❤️

C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,C++11中引入了智能指针的概念,使用智能指针能更好的管理堆内存。

**原理:**智能指针是一种类模板,用来存储指针(指向动态分配对象的指针)。智能指针通过使用引用计数技术来跟踪一个指针被多少个其他指针共享,这样当没有任何指针引用某个对象时,就可以自动释放该对象所占用的内存。

**作用:**它用于自动管理内存,以避免常见的空指针、悬垂指针和内存泄漏问题。还可以提高代码的可读性和可维护性。

44.智能指针的实现

手写实现智能指针类需要实现哪些函数?

智能指针是一个数据类型,一般用模板实现,模拟指针行为的同时还提供自动垃圾回收机制。

除了指针对象外,我们还需要一个引用计数的指针设定对象的值,并将引用计数计为1,需要一个构造函数。新增对象还需要一个构造函数,析构函数负责引用计数减少和释放内存。

通过覆写赋值运算符,才能将一个旧的智能指针赋值给另一个

相关文章:

  • 【C++/嵌入式笔试面试八股】一、24.智能指针 | 其他
  • prometheus 部署安装
  • C# 队列(Queue)
  • C语言中的 #ifdef __cplusplus 和 #endif 的作用
  • RK3588-EDGE Ethernet驱动(一)
  • 手持式网络性能测试仪应用于哪些领域及可以完成什么工作?
  • 分享Python采集99个焦点图,总有一款适合您
  • 基于docker容器化的jenkins2.406升级迁移(jdk8升级jdk11)
  • USB xHCI控制器使用总结
  • 如何在 Linux、Windows 和 Mac 上查找 WiFi 密码?
  • 2023年适合在亚马逊开店吗?
  • 介绍 TensorFlow 的基本概念和使用场景。
  • 2023年建议自考还是成考 两者哪个含金量高
  • redis高级篇 缓存双写一致性之更新策略
  • 对于质量保障,前端职能该做些什么?
  • Oracle SQL 性能优化
  • 激活函数(Activation functions)
  • 《地铁上的面试题》--目录
  • 1929-2022年全球站点的逐月平均气温数据
  • C# WPF窗体设计器显示以及App.xaml文件打不开(VS 2022)
  • JAVA软件测试(贝泽成熟度模型)
  • Benewake(北醒) 快速实现 TF02-Pro-IIC 与电脑通信操作说明
  • Eclipse教程 Ⅴ
  • 【MySQL】主从复制(两台服务器)
  • 数据库之主键、联合主键
  • openpose原理及安装教程(姿态识别)
  • C++ RapidJSON使用详解
  • JVM-基础知识
  • 【ZYNQ】QSPI Flash 固化程序全攻略
  • Ansys Zemax | 如何模拟部分反射和散射的表面