**
C++实现两个矩阵相加——对“+”运算符进行了重载,而且对矩阵的输出采用了两种的输出方式
**
代码如下
```cpp
#include<iostream>
using namespace std;
class add
{
public:
//add();
friend add operator +(add &c1,add &c2);
friend void display(add& m);
friend istream & operator >> (istream&, add&);
friend ostream & operator << (ostream&, add&);
private:
double s[2][3];
};
istream& operator>>(istream& input, add& jz)
{
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
input >> jz.s[i][j];
}
return input;
}
ostream& operator <<(ostream& output, add& jz)
{
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
if (j == 2)
output << jz.s[i][j] << " " << endl;
else
output << jz.s[i][j] << " ";
}
return output;
}
/*add::add()
{
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
cin >> s[i][j];
}
}*/
void display(add& m)
{
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
if (j == 2)
cout << m.s[i][j] << " " << endl;
else
cout << m.s[i][j] << " ";
}
}
add operator +(add & c1, add & c2)
{
//add r;//在此处会再次的调用构造函数,从而需要对对象r的内部数据进行初始化@1
for (int i = 0; i < 2; i++)
for (int j = 0; j < 3; j++)
c2.s[i][j] = c1.s[i][j] + c2.s[i][j];
return c2;
}
int main()
{
//add jz;@1
add jz;
cout << "请从左到右、从上到下依次输入第一个矩阵的数值信息:" << endl;
add jz1;
cin >> jz1;
cout << "请从左到右、从上到下依次输入第二个矩阵的数值信息:" << endl;
add jz2;
cin >> jz2;
cout << "jz1+jz2=" << endl;
jz=jz1 + jz2;
cout << jz;
//display(jz1);
}
注意以上代码中注释掉的为第二种输出方式,除了以下代码段
//add r;//在此处会再次的调用构造函数,从而需要对对象r的内部数据进行初始化@1
//add jz;@1
若想要复现第二种输出方式,可能需要依靠自己去独自调试,读懂代码即可,此文章适合第一次接触c++的初学者。