如何在C ++中生成没有默认构造函数的动态空2D数组

时间:2015-03-28 15:39:40

标签: c++ arrays matrix

我有一个名为Test的类,我想创建一个空的2D数组,它将保存该类的实例,然后使用接受参数的构造函数逐个添加它们。

基本上,我只想保留我稍后会用对象填写的内存。它需要在heap上,因为我将有一个类,它将生成不同大小的2D数组。

这是我的第一个方法,但由于Test类没有默认构造函数,所以它不起作用:

Test** arr;
arr = new Test*[10];
for (int i = 0; i < 10; i++)
    arr[i] = new Test[10];

[编辑]

这是我的完整测试代码。总而言之,我得到错误的值,它应该是从0到99的数字:

#include <iostream>
using namespace std;

class Test {
private:
    short number;
public:
    Test(short n) {
        this->number = n;
    }
    short getNumber() {
        return number;
    }
};

int main() {
    Test** arr;
    arr = new Test*[10*10];
    for (int i = 0; i < 100; i++)
        arr[i] = new Test(i);
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 10; j++)
            cout << arr[i][j].getNumber() << " ";
        cout << endl;
    }
}

1 个答案:

答案 0 :(得分:0)

也许尝试使用默认参数的默认构造函数?

Test(int i = 0) {. . .}