在C++中,reset()函数用于将指针重置为nullptr或者指向另一个对象。当调用reset()函数时,原来指针所指向的对象会被释放,然后指针会被重置为nullptr或者指向新的对象。
例如:
#include <iostream>
#include <memory>
int main() {
std::shared_ptr<int> ptr(new int(10));
std::cout << *ptr << std::endl; // 输出 10
ptr.reset(new int(20));
std::cout << *ptr << std::endl; // 输出 20
ptr.reset();
if (ptr == nullptr) {
std::cout << "ptr 已重置为 nullptr" << std::endl;
}
return 0;
}
在上面的示例中,通过reset()函数将指针ptr的值重置为了一个新的int对象的地址,然后再次调用reset()将指针ptr重置为nullptr。reset()函数会释放原来指针所指向的对象,所以在调用reset()之后,原来指针所指向的对象会被销毁。