题目描述

设计一个矩阵类,当创建矩阵类的对象时,根据提供的行数和列数信息,内部可以通过动态内存分配的机制创建一个任意大小的二维数组用来存储矩阵的数据。相应的,对象析构时应该释放动态分配的数组。对Matrix类重载以下运算符:
(1)将下标运算符[]重载为矩阵类的成员函数,实现用对象名加两个下标的形式能够直接访问二维数组元素的效果;
(2)重载“<<”运算符,实现矩阵的输出功能;
(3)重载“+”运算符(重载为非成员的形式),实现矩阵加法;
(4)重载“*”运算符(重载为非成员的形式),实现矩阵乘法;
main函数已经写好,请根据main函数的内容完成该类的设计。


输入格式

1、第一行输入两个整数a和b
2、接下来输入第一个矩阵:a行b列
3、接下来输入第二个矩阵:a行b列
4、接下来输入第三个矩阵:b行a列


输出格式

依次分别输出三个矩阵的数据
然后输出第一个矩阵和第二个矩阵相加的结果
最后输出第一个矩阵和第三个矩阵相乘的结果


样例数据

输入

2 3
1 2 3
4 5 6
1 2 3
4 5 6
1 2
3 4
5 6

输出

Matrix M1:
1 2 3
4 5 6
Matrix M2:
1 2 3
4 5 6
Matrix M3:
1 2
3 4
5 6
Result of Matrix Addition:
2 4 6
8 10 12
Result of Matrix Multiplication:
22 28
49 64

备注

你需要提交除main函数之外的其他代码
注意动态内存分配可能需要解决深复制问题


操作

评测记录

优秀代码

信息

时间限制: 1s
内存限制: 128MB
评测模式: Normal

题解