迎脾 发表于 2025-9-17 14:03:07

C++ 智能指针

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 基本用法

#include #include using namespace std;class MyClass {public:    MyClass(int id) : id(id) {      cout
页: [1]
查看完整版本: C++ 智能指针