是否可以在类内部构造一个类?

时间:2019-07-19 03:29:23

标签: c++ class constructor initialization

是否可以在另一个类中创建一个类?正在将我的类声明视为成员函数。这是我的代码:

struct Handler{
  int *_value = nullptr;
  Handler(int& value)
  {
    _value = &value;
  }
};
struct action{
  int _value = 0;
  Handler handler(_value);
};

因此,我希望结构处理程序中的_value与结构操作中的_value具有相同的地址,因此当我更改其中一个时,另一个将具有相同的值。

1 个答案:

答案 0 :(得分:2)

Default member initializers仅支持大括号或等于初始值设定项,但不括号括起初始值设定项。所以你可以写成

Handler handler{_value};           // list initialization (since C++11)

Handler handler = Handler(_value); // copy initialization