简单的问题。我有一个结构,其成员也是一个结构。成员结构在构造时采用一个字符串参数。但是,在类定义中,编译器不允许从那里实例化它。即以下是不允许的:
struct StructName {
string str;
OtherStruct other_struct("single string param")
};
所以我尝试不给它一个失败的参数,因为它必须带一个:
struct StructName {
string str;
OtherStruct other_struct;
StructName(string arg);
};
我是C / C ++的新手,所以如果这是一个愚蠢的问题,我很抱歉。
感谢。
答案 0 :(得分:11)
使用初始化列表:
struct StructName {
string str;
OtherStruct other_struct;
StructName(): other_struct("init string") { }
};
您还可以将参数传递给StructName
并将其传递给other_struct
,例如:
StructName(string arg): other_struct(arg) { }