如何初始化构造函数需要两个或多个参数的对象数组?

Yis*_*ang 8 c++

建议我们有一个A类对象的数组,而A类的构造函数需要两个参数,如下所示:

class A  
{  
public:  
    A( int i, int j ) {}  
};  

int main()  
{
    const A a[3] = { /*How to initialize*/ };

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何初始化该数组?

Ker*_* SB 9

说:

const A a[3] = { {0,0}, {1,1}, {2,2} };
Run Code Online (Sandbox Code Playgroud)

在较旧的编译器上,假设A有一个可访问的拷贝构造函数,你必须说:

const A a[3] = { A(0,0), A(1,1), A(2,2) };
Run Code Online (Sandbox Code Playgroud)

C++过去相对于数组来说相当缺乏(某些初始化根本不可能),而且在C++ 11中有所改善.