我在类中使用了一个struct变量,我想在类构造函数中分配该变量的参数值。
但我找不到编译的方法。 你能教我怎么做吗? 这是我的代码示例
struct mystruct
{
int myvar;
}
class myclass
{
mystruct s_;
public:
myclass(int n) : s_.myvar{ n } {}
};
您的myStruct
需要一个合适的构造函数,它将int
ger作为参数。
struct mystruct
{
int myvar;
mystruct(int val) // provide this constructor and good to go!
: myvar{ val }
{}
};
或聚合初始化
因为MyStruct
是一个聚合类型,所以您也可以进行聚合初始化。 这将是您的案例所需的最小更改,并且不需要mystruct
中的构造函数。
class myclass
{
mystruct s_;
public:
myclass(int n)
: s_{ n } // aggregate initialization
{}
};
您可以在构造函数中初始化s_.myvar,如下所示:
Myclass(int n) {
s_.myvar = n;
}