温馨提示×

C++ reset和智能指针

c++
小樊
178
2024-07-17 19:07:43
栏目: 编程语言

在 C++ 中,reset 是智能指针(如 std::shared_ptr、std::unique_ptr)的一个成员函数,用于将智能指针重新指向一个新的对象或空指针。

例如,对于一个 std::shared_ptr 对象,可以使用 reset 函数将其重新指向一个新的对象或空指针,如下所示:

std::shared_ptr<int> ptr(new int(10));
ptr.reset(new int(20)); // 将 ptr 指向一个新的 int 对象
ptr.reset(); // 将 ptr 重置为空指针

使用 reset 函数可以避免内存泄漏,当智能指针指向的对象不再需要时,可以将其重置为空指针,从而释放对象的内存。

需要注意的是,使用 reset 函数会导致原来指向的对象的引用计数减一,如果引用计数变为零,则会自动释放对象的内存。

0