构造函数参数能用智能指针吗
时间: 2024-11-05 08:28:05 浏览: 19
构造函数参数可以使用智能指针。智能指针是一种特殊类型的指针,它自动管理内存,通常用于避免内存泄漏。例如,在C++中,你可以使用`std::unique_ptr`或`std::shared_ptr`作为构造函数的参数,这两个模板类分别实现了独占所有权(类似单利模式)和共享所有权。这样做可以使你在传递大型对象或者需要自动释放的对象时更为安全和高效。
```cpp
class MyClass {
public:
// 使用unique_ptr作为构造函数参数
explicit MyClass(std::unique_ptr<MyLargeObject> obj) : myObj(std::move(obj)) {}
private:
std::unique_ptr<MyLargeObject> myObj;
};
// 或者使用shared_ptr
MyClass(const std::shared_ptr<MySharedObject>& obj) : myObj(obj) {}
private:
std::shared_ptr<MySharedObject> myObj;
};
```
阅读全文