一道关于new ’指针数组‘ 类的题,求思路,在线等高手指点~
先上题:
已有类A声明如下:
class A
{
public:
A(int n):data(n) {}
int Data() const {return data;}
private:
int data;
};
在全局函数void g(int n)中动态建立一个大小为n的一维指针数组,数组元素指向A类对象,各对象的data数据成员各不相同,分别为1,2,3,...,n。创建数组后,x输出各对象的data值,最后释放此数组。
这个动态建立指针数组和类的构造函数有点儿冲突,实在是没有解决的思路了,求指点,谢谢啦~
[解决办法]
void g(int n){A *arr=(A *)new char[n*sizeof(A)];A *p=arr;for(int i=0;i<n;i++) new (p+i) A(i+1);for(int i=0;i<n;i++) cout<<arr[i].Data();delete[] (char *)arr;}