shared_ptr 例程
时间: 2024-04-19 12:20:47 浏览: 151
shared-ptr(智能指针)举例.pdf
shared_ptr是C++标准库中的智能指针之一,用于管理动态分配的内存资源。它提供了自动的内存管理和资源释放,可以避免内存泄漏和悬空指针的问题。
下面是一个shared_ptr的例程:
```cpp
#include <iostream>
#include <memory>
class MyClass {
public:
MyClass() {
std::cout << "MyClass constructor" << std::endl;
}
~MyClass() {
std::cout << "MyClass destructor" << std::endl;
}
void doSomething() {
std::cout << "Doing something..." << std::endl;
}
};
int main() {
// 创建一个shared_ptr对象,指向一个MyClass对象
std::shared_ptr<MyClass> ptr(new MyClass());
// 使用shared_ptr对象调用成员函数
ptr->doSomething();
// shared_ptr会在不再需要时自动释放内存资源,无需手动delete
return 0;
}
```
在上面的例程中,我们首先创建了一个shared_ptr对象`ptr`,并通过`new`关键字动态分配了一个MyClass对象,并将其地址传递给shared_ptr。当我们使用`ptr`调用成员函数`doSomething()`时,它会像普通指针一样访问MyClass对象的成员函数。
当程序执行完毕时,shared_ptr会自动释放内存资源,调用MyClass对象的析构函数进行清理工作。
阅读全文