问答题
18分
打开考生文件夹proj3下的工程proj3,其中声明了Matrix类,是一个用于表示矩阵的类。operator+的功能是实现两个矩阵的加法运算。例如,若有两个3行3列的矩阵则A与B相加的和为请编写op...
打开考生文件夹proj3下的工程proj3,其中声明了Matrix类,是一个用于表示矩阵的类。operator+的功能是实现两个矩阵的加法运算。例如,若有两个3行3列的矩阵
则A与B相加的和为
请编写operator+函数。
要求:
补充编制的内容写在//********333********与//********666********两行之间。不得修改程序的其他部分。
注意:
程序最后已经将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
则A与B相加的和为
请编写operator+函数。
要求:
补充编制的内容写在//********333********与//********666********两行之间。不得修改程序的其他部分。
注意:
程序最后已经将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
参考解析: 【参考答案】
for (int i = 0; i < M; i++)
for (int j = 0; j < N; j++)
sum.setElement(i, j, m1.getElement(i, j) + m2.getElement(i, j));}
【考点分析】
本题考查的是Matrix类,其中涉及多维数组、重载运算符、成员函数。
【解题思路】
主要考查考生对重载运算符的掌握,函数operator+的功能是将形参中两个Matrix对象相加,返回一个新的Matrix对象,新对象的二维数组array的元素是形参中两个对象的二维数组array逐个元素之和。由于Matrix的array是私有成员,所以不能通过对象直接对array进行操作,必须通过成员函数getElement来获取两个对象array数组元素的值,再通过成员函数setElement来完成相加功能,结果保存在临时对象sum中,并返回。