衣旱 发表于 2025-6-14 11:49:05

智能指针

在 C++ 中,智能指针(smart pointers)是用于管理动态分配对象生命周期的类模板。它们旨在帮助开发者自动管理内存,避免常见的内存泄漏问题,并简化资源管理。C++ 标准库提供了三种主要类型的智能指针:std::unique_ptr、std::shared_ptr 和 std::weak_ptr。每种类型都有其特定的应用场景。
智能指针的作用


[*]自动内存管理:智能指针能够自动释放所指向的对象,从而避免了手动调用 delete 可能导致的内存泄漏。
[*]所有权语义:

[*]std::unique_ptr 实现独占所有权(exclusive ownership),即一个对象只能由一个 std::unique_ptr 所有。
[*]std::shared_ptr 支持共享所有权(shared ownership),允许多个 std::shared_ptr 共同拥有同一个对象。
[*]std::weak_ptr 用于解决循环引用的问题,它提供了一种非拥有的引用方式来观察 std::shared_ptr 管理的对象。

如何使用智能指针

1. std::unique_ptr


[*]作用:确保只有一个指针可以指向某个对象,当该 std::unique_ptr 超出作用域或被显式删除时,其所管理的对象会被自动销毁。
[*]使用示例:
#include #include// 包含智能指针相关的头文件int main() {    // 创建一个 unique_ptr 指向一个新的 int 对象    std::unique_ptr smartPtr = std::make_unique(10);      if (smartPtr) {      std::cout
页: [1]
查看完整版本: 智能指针