提问者:小点点

在类构造函数中定义结构变量的参数


我在类中使用了一个struct变量,我想在类构造函数中分配该变量的参数值。

但我找不到编译的方法。 你能教我怎么做吗? 这是我的代码示例

struct mystruct
{
   int myvar;
}

class myclass
{
   mystruct s_;

public:
   myclass(int n) : s_.myvar{ n } {}
};

共2个答案

匿名用户

您的myStruct需要一个合适的构造函数,它将intger作为参数。

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;
}