C++ 智能指针示例代码
时间: 2023-09-07 16:17:25 浏览: 77
C++智能指针 功能强大,高效
下面是一个使用智能指针的示例代码:
```c++
#include <iostream>
#include <memory>
class MyClass {
public:
void doSomething() {
std::cout << "MyClass::doSomething()" << std::endl;
}
};
int main() {
std::unique_ptr<MyClass> ptr1(new MyClass);
std::unique_ptr<MyClass> ptr2 = std::move(ptr1);
if (ptr1 == nullptr) {
std::cout << "ptr1 is null" << std::endl;
}
ptr2->doSomething();
return 0;
}
```
在此示例中,我们使用 `std::unique_ptr` 创建了两个指向 `MyClass` 类对象的指针 `ptr1` 和 `ptr2`。然后,我们将 `ptr1` 移动到 `ptr2` 中,并检查 `ptr1` 是否为空。最后,我们调用 `ptr2` 指向的对象的 `doSomething()` 方法。
需要注意的是,`std::unique_ptr` 是一种独占智能指针,即同一时间只能有一个指针拥有该对象。在移动指针时,原指针会自动被设置为 `nullptr`,以避免出现多个指针同时拥有同一个对象的情况。
阅读全文