c ++ struct definition - 如何在其构造函数中使用单个参数定义成员结构

ale*_*ale 4 c++ struct

简单的问题.我有一个结构,其成员也是一个结构.成员结构在构造时采用一个字符串参数.但是,在类定义中,编译器不允许从那里实例化它.即不允许以下内容:

struct StructName {
   string       str;
   OtherStruct  other_struct("single string param")   
};
Run Code Online (Sandbox Code Playgroud)

所以我试着不给它一个失败的参数,因为它必须带一个:

struct StructName {
   string       str;
   OtherStruct  other_struct;

   StructName(string arg);  
};
Run Code Online (Sandbox Code Playgroud)

我是C/C++的新手,所以如果这是一个愚蠢的问题,我很抱歉.

谢谢.

yan*_*yan 11

使用初始化列表:

struct StructName {
   string       str;
   OtherStruct  other_struct;

   StructName(): other_struct("init string") { }   
};
Run Code Online (Sandbox Code Playgroud)

您也可以参数StructName并将其传递给other_struct,例如:

StructName(string arg): other_struct(arg) { }
Run Code Online (Sandbox Code Playgroud)