编一个程序,用成员函数和友元函数重载运算符“+”和“-”,将两个二维数组相加和相减。要求第一个二维数组的值由构造函数设置,另一个二维数组的值由键盘输入。
#include<iostream>
#include<iomanip>
using namespace std;
const int vol=3;
const int col=3;
class demension{
public:
demension(){}
demension(int k)
{
for(int i=0;i<vol;i++)
{
for(int j=0;j<col;j++)
a[i][j]=i*2+j+k;
}
}
void show();
/*{
cout<<"该二维数组为:"<<endl;
for(int i=0;i<vol;i++)
{
for(int j=0;j<col;j++)
cout<<setw(5)<<a[i][j];
}
cout<<endl;
}*/
demension operator+(demension&);
friend demension operator-(demension&,demension&);
friend istream& operator>>(istream& input,demension&);
friend ostream& operator<<(ostream& out,demension&);
private:
int a[vol][col];
};
demension demension:: operator + (demension& com2)
{
for(int i=0;i<vol;i++)
{
for(int j=0;j<col;j++)
this->a[i][j]=this->a[i][j]+com2.a[i][j];
}
cout<<endl;
return *this;
}
demension operator-(demension & com1,demension & com2)
{
demension temp;
for(int i=0;i<vol;i++)
{
for(int j=0;j<col;j++)
temp.a[i][j]=com1.a[i][j]-com2.a[i][j];
}
cout<<endl;
return temp;
}
istream& operator>>(istream& input,demension& com2)
{
for(int i=0;i<vol;i++)
{
for(int j=0;j<col;j++)
cin>>com2.a[i][j];
}
cout<<endl;
return input;
}
ostream& operator<<(ostream& out,demension& com3)
{
int j;
out<<""<<endl;
for(int i=0;i<vol;i++)
{
for( j=0;j<col;j++)
cout<<setw(5)<<com3.a[i][j];
if(j=2)
cout<<endl;
}
return out;
}
int main()
{
demension ba(3);
demension bb,bs,bd;
cin>>bb;
bs=bb+ba;
bd=ba-bb;
cout<<ba<<endl;
cout<<bb<<endl;
cout<<bs<<endl;
cout<<bd<<endl;
system("pause");
return 0;
}