智能指针
Posted None
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能指针相关的知识,希望对你有一定的参考价值。
C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。
理解智能指针需要从下面三个层次:从较浅的层面看,智能指针是利用了一种叫做RAII(资源获取即初始化)的技术对普通的指针进行封装,这使得智能指针实质是一个对象,行为表现的却像一个指针。智能指针的作用是防止忘记调用delete释放内存和程序异常的进入catch块忘记释放内存。另外指针的释放时机也是非常有考究的,多次释放同一个指针会造成程序崩溃,这些都可以通过智能指针来解决。
shared_ptr
#include <iostream>
#include <memory>
int main() {
std::shared_ptr<int> ptr = new int(512);
return 0;
}
以上是关于智能指针的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 vscode 的代码片段,以便在自动完成后自动触发 vscode 的智能感知?