/* 编写一个程序,用函数重载运算符“+”和“‐”,将两个矩阵(这两个矩阵均为 3 行 3 列)
相加和相减,要求第一个矩阵的值由构造函数设置,另一个矩阵的值由键盘输入。
1. 一个构造函数,矩阵元素从 1 开始递增;
2. 重载运算符>>,用于输入矩阵中的元素值;
3. 重载运算符<<,输出矩阵,按行输出,元素与元素之间用空格分隔;
4. 一个“+”重载的成员函数,用于实现两个矩阵的相加;
5. 一个“‐”重载的友元函数,用于实现两个矩阵的相减; */
#include<iostream>
using namespace std;
class Matrix
{
private:
int matrix[3][3];
public:
Matrix()
{
int i,j,k=1;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
matrix[i][j]=k++;
}
Matrix operator+(Matrix &M1)
{
Matrix M;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
M.matrix[i][j]=matrix[i][j]+M1.matrix[i][j];
return M;
}
friend Matrix operator‐(Matrix &M1,Matrix &M2)
{
Matrix M;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
M.matrix[i][j]=M1.matrix[i][j]‐M2.matrix[i][j];
return M;
}
friend istream& operator>>(istream &in,Matrix &M)
{
int i,j;
cout<<"input the number for the Matrix:\n";
for(i=0;i<3;i++)
for(j=0;j<3;j++)
in>>M.matrix[i][j];
return in;
}
friend ostream& operator<<(ostream &out,Matrix &M)
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
out<<M.matrix[i][j]<<" ";
cout<<endl;
}
return out;
}
};
版权声明:本文为wffs_yz000原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。