为什么在创建类对象数组时无法调用参数化构造函数?

nag*_*jan 3 c++ default-constructor construct

我是C++的新手,我需要对构造函数做一些澄清,我的问题是:

  1. 我们可以在创建类对象数组时使用参数化构造函数吗?
  2. 或者,在创建类对象数组时是否只能使用默认构造函数?

请解释如何完成,或为什么不能.我需要对此有更深入的了解.

Cor*_*mer 6

您可以使用参数化构造函数初始化数组.请参阅以下示例.

class Foo
{
public:
    Foo(int _a, bool _b) : a{_a}, b{_b} {}
private:
    int a;
    bool b;
};

int main() {
    Foo things[] = {{5, true},
                    {3, false},
                    {7, true}};
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

数组thingsFoo对象.我正在使用统一初始化来构造Foo数组中的3个对象.这些依赖于我在类中定义的参数化构造函数.