std::make_shared<>()传入std::string对象,作为类名
时间: 2024-09-24 14:26:34 浏览: 67
fenshu.zip_site:www.pudn.com
`std::make_shared<>` 是 C++11 引入的一个函数模板,用于高效地创建共享智能指针,特别是指向动态分配内存的对象。当你想要使用 `shared_ptr`(一种管理所有权的智能指针)来引用一个 `std::string` 对象,并将其作为某个类的实例时,你可以这样做:
```cpp
#include <memory> // 包含 shared_ptr 和 make_shared
// 假设有一个名为 MyClass 的类,它有一个 std::string 成员变量
class MyClass {
public:
std::string myString;
// ... 其他成员和构造函数等
};
// 创建一个 std::string 对象
std::string str = "Hello, World!";
// 使用 std::make_shared 创建一个 shared_ptr 指向 MyClass 实例,字符串作为 myString 的初始值
auto sharedMyClass = std::make_shared<MyClass>(str);
// 现在 sharedMyClass 就会持有对这个包含 std::string 的 MyClass 对象的所有权
```
在这个例子中,`std::make_shared<MyClass>(str)` 直接构造了一个 MyClass 的实例,同时将 str 初始化为其 myString 成员。`sharedMyClass` 将负责对象的生命周期管理。
阅读全文