我有一个关于 c++ 的考试。下面有说明:
- 矩阵 *m2 = 新矩阵(3,4,9);→ 带 9 的 3x4 矩阵
- 矩阵运算 → m2=m2+m3
我正在尝试将 m2 和 m3 相加并放置 m2。但是有一个错误:'Matrix*' 和'Matrix*' 类型的无效操作数到二进制'operator+'。
主.cpp:
int main(){
Matrix *m2= new Matrix(3,4,9);
Matrix *m3= new Matrix(3,4,2);
m2= m2+m3;
return 0;
}
矩阵.h:
class Matrix{
private:
int x,y;
vector<vector <int> > matris;
public:
Matrix(int row,int col,int z);
Matrix* operator+(Matrix* no2);
};
矩阵.cpp:
Matrix::Matrix(int row,int col, int z){
Matrix::x=row;
Matrix::y=col;
for(int i=0;i<x;i++){
matris.push_back(vector <int>(y));
}
for(int i=0;i<Matrix::x;i++){
for(int j=0;j<Matrix::y;j++){
Matrix::matris[i][j]=z;
}
}
}
Matrix* Matrix::operator +(Matrix* no2){
Matrix* temp = new Matrix(this->x,this->y,0);
for(int i=0;i<this->x;i++){
for(int j=0;j<this->y;j++){
temp->matris[i][j]=this->matris[i][j]+ no2->matris[i][j];
}
}
return temp;
}