#include <iostream>
#include <memory>
class MyClass {
public:
MyClass() {
std::cout << "MyClass constructor called" << std::endl;
}
~MyClass() {
std::cout << "MyClass destructor called" << std::endl;
}
void sayHello() {
std::cout << "Hello from MyClass!" << std::endl;
}
};
int main() {
// 创建一个 unique_ptr 指向 MyClass 对象
std::unique_ptr<MyClass> ptr = std::make_unique<MyClass>();
// 调用 MyClass 的成员函数
ptr->sayHello();
// unique_ptr 在离开作用域时会自动释放所管理的对象
return 0;
}
#include <memory>:引入 std::unique_ptr 所在的头文件。std::unique_ptr<MyClass> ptr = std::make_unique<MyClass>();:使用 std::make_unique 创建一个 unique_ptr,它会自动管理一个 MyClass 对象的生命周期。unique_ptr 确保该对象在超出作用域时被正确销毁。ptr->sayHello();:通过 unique_ptr 调用 MyClass 的成员函数 sayHello()。ptr 离开 main 函数的作用域时,unique_ptr 会自动调用 MyClass 的析构函数并释放资源。这样可以确保资源的安全管理,避免内存泄漏。
上一篇:c++换行指令
下一篇:dev c++怎么调试
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站