您的位置:首页 > 其它

7.12流插入运算符“<<"和流提取运算符”>>“

2015-06-27 17:37 302 查看
#include<iostream>
#include<iomanip>
using namespace std;

class Matrix{
private:
int var[2][4];
public:
Matrix();                    //构造函数
friend Matrix operator+(Matrix& a, Matrix& b);            //加法友元函数
friend ostream& operator<<(ostream&, Matrix&);          //声明运算符“<<”重载为友元函数
friend istream& operator>>(istream&, Matrix&);          //声明运算符“>>”重载为友元函数
};

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

Matrix operator+(Matrix &k, Matrix& p)          //加法函数
{
Matrix temp;
for (int i = 0; i < 2;i++)
for (int j = 0; j < 4; j++)
temp.var[i][j] = k.var[i][j] + p.var[i][j];
return temp;
}

ostream& operator<<(ostream& out, Matrix& com)                    //定义运算符“<<”重载函数
{
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 4; j++)
out <<setw(5)<< com.var[i][j];
out << endl;
}
out << endl;
return out;
}

istream& operator>>(istream& in, Matrix& com)                 //定义运算符“>>”重载函数
{
cout << "please input 8 numbers:";
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 4; j++)
in>>com.var[i][j];
}
return in;
}

int main()
{
Matrix a, b,c;
cin >> a;
cin >> b;
cout << "Matrix a is:" << endl;
cout << a;
cout << "Matrix b is:" << endl;
cout << b;
c = a + b;
cout << "Matrix a+b is:" << endl;
cout << c;
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: