智能指针是C++中的一种特性,它自动管理动态分配的内存,以防止内存泄漏。智能指针通过封装原始指针并提供适当的析构函数来自动释放内存。当智能指针离开其作用域或被删除时,它所指向的内存也会被自动释放。
C++标准库提供了三种类型的智能指针:std::unique_ptr
、std::shared_ptr
和 std::weak_ptr
。
- std::unique_ptr
std::unique_ptr
是一个独占所有权的智能指针,意味着同一时间只能有一个 unique_ptr
指向某个对象。当 unique_ptr
被销毁时(例如,超出作用域),它所指向的对象也会被删除。
例子:
cpp复制代码
#include <iostream> |
|
#include <memory> |
|
class MyClass { |
|
public: |
|
MyClass(int value) : value_(value) {} |
|
void printValue() const { std::cout << "Value: |