-3

可能重复:
没有默认构造函数的 c++ 对象数组初始化

我有结构:

struct aa 
{
    int a;
    char  b [255];

    aa(int number)
    {
        cout<<"creating structure "<<number<<"\n";

    }

    ~aa()
    {
        cout<<"destroying structure"; 
    }
};

我正在尝试创建此结构的数组,但这不起作用:

aa *ss = new aa[3](1);

这给了我一个编译器错误。

我该怎么做?

4

1 回答 1

0
aa(int number=1)
・・・
aa *ss = new aa[3];

或者

template <int N>
struct aa
・・・
aa(int number = N)
・・・
aa<1> *ss = new aa<1>[3];

或者

#include <new>
・・・
aa(int number=0)
・・・

int main(){
    aa ss[3];//local value
    for(int i=0;i<3;++i)
        new (ss + i) aa(1);//replacement
于 2012-07-22T14:35:31.717 回答