class ClassName {
A* grid[][];
}
我得到''grid'的声明,因为多维数组必须包含除第一个“错误之外的所有维度的边界。问题是我在运行程序之前不会知道维度,其中大小是其中一个参数。
指令声明网格的每个元素都应该是A * - 即指向A类对象的指针。
我该怎么做?
答案 0 :(得分:0)
您可以选择以这种方式定义grid
:A*** grid;
。当然,您必须使用此设置动态分配内存:
class ClassName {
A*** grid;
int nCols, nRows;
public:
ClassName(int cols, int rows) {
nCols = cols;
nRows = rows;
grid = new A**[nCols];
for (int i = 0; i < nCols; i++) {
grid[i] = new A*[nRows];
for (int j = 0; j < nRows; j++) {
grid[i][j] = nullptr;
}
}
}
~ClassName() {
for (int i = 0; i < nCols; i++) {
delete[] grid[i];
}
delete[] grid;
}
};