重复的问题
答案 0 :(得分:3)
在这些行中
array2D(int xRes, int yRes){
float **xtable;
您正在声明一个局部变量。同名的类成员变量保持未初始化状态,稍后再使用它。
删除第二行。
此外,成员变量xRes
和yRes
也未初始化。
使用:
array2D(int xResIn, int yResIn) : xRes(xResIn), yRes(yResIn) {
xtable = new float*[yRes];
for(int i=0;i < yRes;i++) {
xtable[i] = new float[xRes];
}
}
另外,更改
void getSize(int &xRes, int &yRes){}
到
void getSize(int &xResOut, int &yResOut)
{
xResOut = this->xRes;
yResOut = this->yRes;
}
在展开此类时,请记住The Rule of Three并实现复制构造函数和复制赋值运算符。
array2D(array2D const& copy) { ... }
array2D& operator=(array2D const& rhs) { ... }