在 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 函數會導致原來指向的對象的引用計數減一,如果引用計數變為零,則會自動釋放對象的內存。