关于C 中带参数构造函数的类的数组的用new分配问题。

关于C 中带参数构造函数的类的数组的用new分配问题。 - 故障解答 - 电脑教程网

关于C 中带参数构造函数的类的数组的用new分配问题。

日期:2007-05-10   荐:
关于C 中带参数构造函数的类的数组的用new分配问题。我在c 中写了一个类,使用了一个带参构造函数。如何在new一个数组的时候,调用这个带参构造函数?比如class A{ int m_b;public: A( int b ):m_b(b){}};A * pArray = new A[20];// 这里怎么把参数b放进去呢?只能用默认参数构造函数了这里不能用的。只能调用默认的构造函数。如果不是数组就可以了~楼上的已经答了!!new分配一个对象的空间,可以传入参数,如:A * pArray = new A(999);但是对象数组就不行了A * pArray[20];for(){pArray[i] = new A(b);}楼上已经说了,需要补充一点是,new操作的如果是数据则只能调应相应数据类型的默认构造函数,如:string* pStr = new(string[10]);而如果是单个对象,则可初始化,如:int* pInt = new int(10)呵呵,没有办法带参数进对象数组的,就是不用new动态申请好象也不可以的可以这样做:int b = 1;A * pArray = (A*)operator new(20*sizeof(A));// 这里怎么把参数b放进去呢?for ( int i = 0; i < 20; i ) new (pArray i) A(b);分配内存和初始化对象,分步进行.
标签: