首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

带有参数的类构造函数, 数组有关问题

2012-12-31 
带有参数的类构造函数, 数组问题如下一个简单的类:class A {public:A() { printf(con\n)}A( int i):a(i

带有参数的类构造函数, 数组问题
如下一个简单的类:

class A {
public:
A() { printf("con\n");}
A( int i):a(i) {;}
~A() { printf("dec\n");}

int a;
};

如果生成一个10元素的数组,可以
     A* pA = new A[10];
这里调用的是A的没有参数的构造函数

但是如何调用带有参数的的构造函数  A( int i ) 呢???

A(1) [10] ? 编译不通过!


[解决办法]
标准C++不提供在数组NEW上进行除默认值初始化之外的初始化。

你的需求可以这样解决:


A *p = new A[10];
for( int i = 0; i < 10; ++i )
    new ( p + i ) A( 10 );


delete的时候直接delete [] p就行了,placement new不需要delete。
[解决办法]
一楼正解

热点排行