首页 > 解决方案 > 在类构造函数中定义结构变量的参数

问题描述

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

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

struct mystruct
{
   int myvar;
}

class myclass
{
   mystruct s_;

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

标签: c++classc++11parametersconstructor

解决方案


为此,您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
   {}
};

推荐阅读