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

时间:2011-06-13 17:51:08

标签: c++ struct

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

struct StructName {
   string       str;
   OtherStruct  other_struct("single string param")   
};

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

struct StructName {
   string       str;
   OtherStruct  other_struct;

   StructName(string arg);  
};

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

感谢。

1 个答案:

答案 0 :(得分:11)

使用初始化列表:

struct StructName {
   string       str;
   OtherStruct  other_struct;

   StructName(): other_struct("init string") { }   
};

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

StructName(string arg): other_struct(arg) { }