我不知道(如果可能的话)如何使用另一个带参数的构造函数从具有带参数构造函数的类分配数组。例如(我将只写真正相关的内容。嗯,我怀疑模板是,但仍然):
template <typename T>
class C1 {
T *array;
public:
C1 (int n) {
array = new T [n];
};
};
class C2 {
int length;
int lengthArrayC1;
C1<T> *array;
public:
C2 (int x, int y) {
length = x;
lengthArrayC1 = y;
array = //and here's where I'm lost
};
};
我尝试用多种方式写这样的东西:
array = new [length] C1<T> (lengthArrayC1);
但都没有用。
最佳答案
做不到:Object array initialization without default constructor
一个类型必须有一个无参数的构造函数,以便您new[]
它的一个数组。但是,请参阅关于使用 std::vector
的问题的答案中的提示,它允许您指定用于初始化数组元素的原型(prototype)对象。
关于c++ - 使用另一个类中的构造函数来分配带有 new 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22308829/