设计方阵类,求矩阵相加

【问题描述】设计方阵类,求矩阵加法。

1、设计方阵类,包含二级指针int **data,指向一个动态申请的n*n的二维数组【n为全局变量】

2、重载运算符“>>”,直接输入矩阵

3、重载运算符"+",使之能用于矩阵相加(a+b),且在该函数中输出相加后的结果矩阵

4、实现析构函数,释放动态内存空间。
【输入形式】

1、第1行输入方阵的阶数n

2、接下来的n行,输入第一个方阵的数据

3、接下来的n行,输入第二个方阵的数据,以空格分隔每列数据
【输出形式】

输出相加后的n*n方阵,以空格分隔每列数据,每行之间换行输出
【样例输入】

3

1 2 3

4 5 6

7 8 9

1 2 3

4 5 6

7 8 9

【样例输出】

2 4 6

8 10 12

14 16 18

#include  <iostream>
using  namespace  std;
int  n=0;  //全局变量n表示矩阵的阶数
class  Matrix {
	private:
		int**  data;  //二级指针,指向动态申请的二维数组
	public:
		Matrix();  //无参构造函数
		void  operator+(Matrix&);  //以成员函数形式重载的加法运算符  ,并在函数内部输出运算结果
		friend  istream&  operator>>  (istream&,Matrix&);  //以友元函数形式重载的输入运算符
		~Matrix();//析构函数
};
Matrix::Matrix() {
	data=NULL;
}
istream &operator>>(istream &in,Matrix &m) {
	m.data =new int*[n];
	for(int i=0; i<n; i++)
		m.data[i]=new int[n];
	for(int i=0; i<n; i++)
		for(int k=0; k<n; k++)
			in>>m.data[i][k];
	return in;
}
void Matrix::operator+(Matrix &m) {
	for(int i=0; i<n; i++)
		for(int k=0; k<n; k++)
			data[i][k]=m.data[i][k]+data[i][k];
	for(int i=0; i<n; i++)
		for(int k=0; k<n; k++) {
			cout<<data[i][k]<<" ";
			if(k==n-1) cout<<endl;
		}
}
Matrix::~Matrix() {
	for(int i=0; i<n; i++)
		delete []data[i];
	delete []data;
}
int  main() {
	Matrix  m1,m2;
	cin  >>  n;
	cin  >>  m1;
	cin  >>  m2;
	m1  +  m2;
	return  0;
}
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HanWLang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值