C++实现矩阵相加【对“+”运算符进行了重载,而且对矩阵的输出采用了两种的输出方式】

it2026-10-04  4

**

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++的初学者。

最新回复(0)