【问题标题】:Is it possible to construct a class inside of a class?是否可以在类内部构造一个类?
【发布时间】:2019-07-19 03:29:23
【问题描述】:

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

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

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

【问题讨论】:

  • 设为Handler handler{_value};(注意大括号)。 Demo
  • 谢谢!现在它正在工作,因为它没有被视为成员函数!
  • Nested Classes C++的可能重复

标签: c++ class constructor initialization


【解决方案1】:

Default member initializers 仅支持大括号或等号初始化器,不支持括号初始化器。所以你可以写成

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    相关资源
    最近更新 更多