c++ - 如何将 shared_ptr 初始化为结构

标签 c++ initialization shared-ptr

我对结构有两个定义。

struct ST1               
{                        
  int iVar1;               
  int iVar2;             
  float iVar3;
};

struct ST2
{
 std::shared_ptr<ST1> p_sVar4;
};

ST2 structure2; 

我尝试初始化 structure2 :

structure2.p_sVar4 = new ST1();

但这是错误的。

如何初始化structure2

最佳答案

使用 std::make_shared:

 structure2.p_sVar4 = std::make_shared<ST1>();

(通常优先于:

structure2.p_sVar4 = std::shared_ptr<ST1>(new ST1)

)

关于c++ - 如何将 shared_ptr 初始化为结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35117744/

相关文章:

c++ - 当超过 12 个线程时,pthread_create 段错误?

c++ - weak_ptr 如何知道共享资源已过期?

c++ - 使用只有一名成员的 union 的目的是什么?

c++ - Bazel 允许我包含来自全局安装的库的 header

c++ - C++ 类中的静态常量初始化结构数组

c++ - 如果构造函数抛出异常会发生什么?

c++ - boost shared_ptr 和 c++ 引用。这里到底出了什么问题?

c++ - shared_ptr 构造函数的异常安全

c++ - 获取非常奇怪的数组边界异常

java - 加载类时未初始化静态变量