对象数组动态分配时怎么初始化?
//对象数组的动态分配+初始化+构造函数,这里到底是哪里出错了?#include<iostream>
using namespace std;
class Square
{
public:
double a;
double Area();
Square(double x); //构造函数
~Square();
};
double Square::Area()
{
return a*a;
}
Square::Square(double x) //构造函数
{
a=x;
}
Square::~Square()
{
cout<<"array ends"<<endl;
}
int main()
{
Square *q=new Square[3]; //我想申请一个Square类 类型的动态数组,有3个元素。 但这里总是报错!!不知道为什么?
q[0]=Square(2);
q[1]=Square(3); //通过构造函数把初始值3 赋值给q[1]对象中的数据成员a
q[2]=Square(4);
for(int i=0;i<3;i++)
{
cout<<q[i].a<<"\t"<<q[i].Area()<<endl;
}
delete[]q;
return 0;
}