这样不仅一些常对象也可以传入,还可以让一些返回的临时变量作为下一个函数的参数
matrix1::operator=(const matrix1 &obj) {
m=obj.m;
n=obj.n;
p=new int[m*n];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
*(p+n*i+j)=*(obj.p+n*i+j);
}
matrix1 ma1(m,n,(int*)b);
matrix1 ma2(m,n,(int*)d);
matrix1 ma3;
ma3=ma1+ma2;
matrix1 matrix1::operator+(matrix1 &obj)
{
int i,j;
int x[m][n];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
x[i][j]=*(p+n*i+j)+*(obj.p+n*i+j);
return matrix1(m,n,(int *)x);
}
这样可以实现矩阵的加法,注意等号的重载!!!!因为有指针的赋值