我的代码有一些问题,我不知道这是怎么回事。 错误是:错误:
与“ operator +”不匹配(操作数类型为“ int”和“ Matrix2D”) m = 2 + m; //运算符+(3)
我的代码是:
Matrix2D Matrix2D :: operator + (const int & number){
TipoBase **tmp;
tmp = new int * [rows];
for(int i = 0; i < rows; i++){
tmp[i] = new int [cols];
}
for(int i = 0; i < rows; i++){
for(int j = 0; j < cols; j++){
tmp[i][j] = info[i][j] + number;
}
}
return(tmp);
}
答案 0 :(得分:1)
您已经将operator+
作为成员函数的重载,它允许您执行m + 2
。
如果您想做2 + m
,则还必须提供重载作为(朋友?)功能:
Matrix2D operator+(const int& i, const Matrix2D& m){
return m + i;
}