c++ - 使用另一个类中的构造函数来分配带有 new 的数组

标签 c++ class constructor

我不知道(如果可能的话)如何使用另一个带参数的构造函数从具有带参数构造函数的类分配数组。例如(我将只写真正相关的内容。嗯,我怀疑模板是,但仍然):

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/

相关文章:

php - 另一个继承问题

Java 程序创建 Person 类时出错

c# - 文字字符串赋值会像这样调用 String 构造函数吗?

c++ - 在构造函数初始化列表中转换值 C++

c++ - 从 ATL 项目调用自定义 COM 接口(interface)

c++ - 如何从相机读取缓冲区信息?

c++ - string.compare 什么时候停止比较? (标准)

java - native Thread 类函数的 JNI 流程是什么?

javascript - 单击复选框时检查复选框的选中状态

c++ - 编译时大小未知的数组类的实例化