c++用函数重载运算符“+”和“‐”,将两个矩阵相加和相减

  • Post author:
  • Post category:其他


/* 编写一个程序,用函数重载运算符“+”和“‐”,将两个矩阵(这两个矩阵均为 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 版权协议,转载请附上原文出处链接和本声明。