找回密码
 立即注册
首页 业界区 安全 C++ 智能指针

C++ 智能指针

迎脾 2025-9-17 14:03:07
C++ 智能指针(Smart Pointer)是 C++11 引入的用于自动管理动态内存的模板类,其核心作用是通过RAII(资源获取即初始化)机制,在智能指针生命周期结束时自动释放所管理的内存,从而避免传统裸指针(Raw Pointer)可能导致的内存泄漏、重复释放、悬垂指针等问题。
智能指针通过 RAII(Resource Acquisition Is Initialization) idiom 来解决这些问题:

  • 获取资源即初始化:在构造函数中获取资源(分配内存)。
  • 释放资源即析构:在析构函数中自动释放资源。只要智能指针对象超出作用域,无论是因为正常执行还是异常,其析构函数都会被调用,从而保证资源被释放。
所有智能指针都定义在  头文件中。
1、std::unique_ptr - 独占所有权指针

std::unique_ptr 是独占式智能指针,其管理的资源只能被一个 unique_ptr 拥有不允许拷贝(避免多个指针同时管理同一资源),但允许移动(转移所有权)。
1.1 基本用法

[code]#include #include using namespace std;class MyClass {public:    MyClass(int id) : id(id) {        cout

相关推荐

您需要登录后才可以回帖 登录 | 立即注册