這樣不僅一些常對象也可以傳入,還可以讓一些傳回的臨時變量作為下一個函數的參數
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);
}
這樣可以實作矩陣的加法,注意等号的重載!!!!因為有指針的指派