C++运算符重载

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:28:03
有2个矩阵a和b,都为2行3列,求2个矩阵和,重载运算符“+”,使之可以相加:c=a+b;
重载流插入运算符“<<",和流提取运算符">>",使之可以输入和输出
谢谢啦,我是菜鸟,答案满意的我继续追加

楼上写的很好 但是没有重载流插入/提取运算符
所以么在arry类里面加两句:
friend istream& operator>>(istream& is, arry& arry)
friend ostream& operator<<(ostream& os, arry& arry)
然后在类外面加上:
istream& operator>>(istream& is, arry& arry)
{//自己写上要输出的东西吧
return is;
}
ostream& operator>>(ostream& os, arry& arry)
{//自己写上要输入的东西吧
return os;
}

//前面申明的时候加上friend(友元)是为了读取到类里面的私有变量

#include<iostream.h>

class arry
{
public:
arry(int x[2][2]){for(int i=0;i<2;i++)for(int j=0;j<2;j++)arr[i][j]=x[i][j];}
arry operator+(arry b);
void display();
private:
int arr[2][2];

};
arry arry::operator+(arry b)
{
int c[2][2];
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
c[i][j]=arr[i][j]+b.arr[i][j];
return arry(c);
}

void arry::display()//自己写display的实现吧:)
{
}

void main()
{