我有一个名为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;
}
}
答案 0 :(得分:0)
也许尝试使用默认参数的默认构造函数?
Test(int i = 0) {. . .}