重载流插入运算符和流提取运算符

来源:互联网 发布:2k17乔丹捏脸详细数据 编辑:程序博客网 时间:2024/04/29 20:10

有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”使之能用与矩阵相加,如c=a+b。重载流插入运算符“<<”和流提取运算符“>>",使之能用与该矩阵的输入和输出,如cin>>a,cout<<a。

我是刚学习c++de菜鸟   

源代码如下:

#include <iostream>
using namespace std;
class Matrix
{
public:
Matrix();
friend Matrix operator +(Matrix&,Matrix&);
friend ostream&operator<<(ostream&, Matrix&);
friend istream&operator>>(istream&, Matrix&);
private:
int mat[2][3];
};


Matrix::Matrix()
{
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; j++)
mat[i][j] = 0;
}


Matrix operator + (Matrix&a,Matrix &b)
{
Matrix c;
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; j++)
{
c.mat[i][j] = a.mat[i][j] + b.mat[i][j];
}
return c;
}




ostream&operator<<(ostream&output, Matrix&c)
{
cout << "矩阵和为:" << std::endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
output << c.mat[i][j];
cout << endl;
}
return output;
}


istream&operator>>(istream&input, Matrix&c)
{
cout << "请输入矩阵:"<<std::endl;
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; j++)
input >> c.mat[i][j];
cout << endl;


return input;
}


int main()
{
Matrix a, b, c;
cin >>a>> b;
c = a + b;
cout << c;
return 0;


}

0 0
原创粉丝点击