c++独占智能指针执行get后智能指针变为nullptr
时间: 2024-06-16 19:00:18 浏览: 161
在C++中,独占智能指针(unique_ptr)是一种智能指针类型,它提供了对动态分配对象的独占所有权。当使用unique_ptr的get函数获取其内部指针时,独占智能指针不会变为nullptr。相反,它仍然保持对原始指针的所有权,并且负责在其生命周期结束时自动释放所管理的对象的内存。
范例:<<引用:#include <iostream> #include <memory> int main() { std::unique_ptr<int> ptr(new int(10)); int* rawPtr = ptr.get(); std::cout << "Raw pointer: " << rawPtr << std::endl; std::cout << "Unique pointer: " << ptr.get() << std::endl; return 0; }[^1]。引用:输出结果: Raw pointer: 0x7ffeedd4a4c0 Unique pointer: 0x7ffeedd4a4c0 。
```cpp
#include <iostream>
#include <memory>
int main() {
std::unique_ptr<int> ptr(new int(10));
int* rawPtr = ptr.get();
std::cout << "Raw pointer: " << rawPtr << std::endl;
std::cout << "Unique pointer: " << ptr.get() << std::endl;
return 0;
}
```
输出结果:
Raw pointer: 0x7ffeedd4a4c0
Unique pointer: 0x7ffeedd4a4c0
```
阅读全文