可能重复:
c++ Object array initialization without default constructor
我有结构:
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);
这给我一个编译器错误。
我该怎么做?
答案 0 :(得分: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