这个真还是没有总结过,不过我只知道这几种运算符不能重载:
1成员运算符:
2指针取内容运算法:
3作用域分辨符:::
4三目运算符: :
5sizeof()
哎,,,叫你求助我又不求助,无语
其实我早写好了
我的重载为-,如果你改+,就把之前的重载删除,就可以了#include<iostream>
#define MAX 10
using namespace std;
class matrix;
matrix& operator-(matrix& b,const matrix& c);
class matrix
{
private:
int row,col,(a)[MAX];
public:
matrix(){}
matrix(int r,int c,int (b)[MAX]):row(r),col(c),a(b){}
matrix& operator+(const matrix& b)
{
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
a[i][j]=a[i][j]+ba[i][j];
return this;
}
friend matrix& operator-(matrix& b,const matrix& c)
{
for(int i=0;i<brow;i++)
for(int j=0;j<bcol;j++)
ba[i][j]=ba[i][j]-ca[i][j];
return b;
}
void show()
{
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}
};
void main()
{
int row =2 ,col =3,a[2][MAX]={{1,2,3},{4,5,6}};
matrix mat1(row,col,a);
int b[2][MAX]={{4,3,2},{1,2,3}};
matrix mat2(row,col,b);
matrix mat3;
mat3 = mat1 + mat2;
cout<<"mat3"<<endl;
mat3show();
cout<<"mat1"<<endl;
mat1show();
cout<<"mat4"<<endl;
matrix mat4;
mat4 = mat1 - mat2;
mat4show();
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)