c++ - C++ 中的构造函数

标签 c++ composition initializer-list

我的问题是: 例如我有两个类 x 和 y

class X{
public:
      X(int, int, string);

private: int a;
         int b;
         string c;
};

class Y{

private: X x[10];
}

我的问题是如何通过 Y 的构造函数初始化这个包含 10 个 x 对象的数组?初始化列表?如何初始化这10个x in y的对象。

最佳答案

在 C++03 中你不能这样做。

在 C++11 中,像这样:

class Y
{
private:
    X x[3];
public:
    Y()
    : x { X(1, 2, "a"), X(2, 3, "b"), X(3, 4, "c") }
    {
    }
};

或者你可以说:

    : x { {1, 2, "a"}, {2, 3, "b"}, {3, 4, "c"} }

关于c++ - C++ 中的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18726630/

相关文章:

python - 通过继承共享基础对象

java - 这里如何同时遵守 "composition over inheritance"和DRY原则呢?

c++ - 如何在可变参数构造函数的初始化列表中初始化 vector ?

c++ - 构造函数采用初始化列表

C++ 保护进程不被挂起

c++ - 采用 std::vector 或 std::array 的模板函数

c++ - 使用 wxWidgets、Linux、C++ 构建源文件时出错

c++ - 如何在参数非常量中传递 const 指针

javascript - 在 Angular 6 中的组件之间共享逻辑时如何使用组合而不是继承?

具有固定大小数组成员的结构的 C++ 大括号初始化