矩阵相加+重载运算符

程序设计说明:

     有两个均为3行3列的矩阵m1和m2,求两个矩阵之和。重载运算符“+”、“>>”、“<<”,使之能用于矩阵相加、输入和输出。

 

程序代码:

#include<iostream.h>
int i,j;

class Matrix
{
	int matrix[3][3];
public  :
	Matrix ();
	Matrix operator+ (Matrix &m1);
	friend ostream & operator << (ostream &out,Matrix & m);
	friend istream & operator >> (istream &in,Matrix & m);
};

Matrix::Matrix()
{
	for ( i=0;i<3;i++)
		for (j=0;j<3;j++)
			matrix[i][j]=0;
}

Matrix Matrix:: operator+(Matrix &m1)
{
	Matrix tmp;
	for (i=0;i<3;i++)
		for (j=0;j<3;j++)
			tmp.matrix[i][j]=matrix[i][j]+m1.matrix[i][j];
		return tmp;
}

istream & operator>> (istream &in,Matrix &m)
{
	cout <<"请输入矩阵数据:"<< endl;
		for (i=0;i<3;i++)
			for (j=0;j<3;j++)
				in >> m.matrix[i][j];
			return in;
}

ostream & operator<< (ostream &out,Matrix & m)
{
		for (i=0;i<3;i++)
		{
			for (j=0;j<3;j++)
				cout << m.matrix[i][j]<<" ";
			out <<endl;
		}
		return out;
}

void main()
{
	Matrix m1,m2;
	cin >> m1;
	cin >> m2;
	cout << "Matrix m1 :\n" << m1 <<endl;
	cout << "Matrix m2 :\n" << m2 <<endl;
	m1 =m1+m2;
	cout << "Matrix m1+m2=\n" << m1 <<endl;
}

 

 

运行结果:



 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值