早教吧作业答案频道 -->其他-->
c++运算符的重载定义一个类MatrixAdd,其数据成员为一个M*N的矩阵(即二维数组),其中M和N是两个预先定义的符号常数。通过重载运算符”+”和”=”,实现矩阵相加和赋值运算。如定义矩阵
题目详情
c++运算符的重载
定义一个类MatrixAdd,其数据成员为一个M*N的矩阵(即二维数组),其中M和N是两个预先定义的符号常数。通过重载运算符”+”和”=”,实现矩阵相加和赋值运算。如定义矩阵A=
1 2 3
4 5 6
和B=
2 2 2
3 3 3
, 通过运算C=A+B,得到结果矩阵
C=
3 4 5
7 8 9
。
具体要求如下:
(1)私有数据成员
l int a[M][N]:存放二维数组值。
(2)公有成员函数
l MatrixAdd ( ):缺省构造函数,空操作。
l MatrixAdd ( int x[M][N]):构造函数,用x初始化数据成员a。
l MatrixAdd operator+(MatrixAdd &b):重载加法运算符”+”,实现两个矩阵相加。
l void operator=(MatrixAdd &b):重载赋值运算符”=”,实现两个矩阵赋值。
l void show( ):按二维方式输出a数组。
(3)在主函数中完成对该类的测试。注意:在程序的开头,定义符号常数M和N的值分别为2和3,表示二维数组的行数和列数。在主函数中定义整型数组a[M][N]和b[M][N],它们的初值取上述示例值。定义三个Matrix类的对象A、B和C,并用数组a和b初始化对象A和B。将A加B后赋值给C。然后输出对象C的数据成员a矩阵的值。
定义一个类MatrixAdd,其数据成员为一个M*N的矩阵(即二维数组),其中M和N是两个预先定义的符号常数。通过重载运算符”+”和”=”,实现矩阵相加和赋值运算。如定义矩阵A=
1 2 3
4 5 6
和B=
2 2 2
3 3 3
, 通过运算C=A+B,得到结果矩阵
C=
3 4 5
7 8 9
。
具体要求如下:
(1)私有数据成员
l int a[M][N]:存放二维数组值。
(2)公有成员函数
l MatrixAdd ( ):缺省构造函数,空操作。
l MatrixAdd ( int x[M][N]):构造函数,用x初始化数据成员a。
l MatrixAdd operator+(MatrixAdd &b):重载加法运算符”+”,实现两个矩阵相加。
l void operator=(MatrixAdd &b):重载赋值运算符”=”,实现两个矩阵赋值。
l void show( ):按二维方式输出a数组。
(3)在主函数中完成对该类的测试。注意:在程序的开头,定义符号常数M和N的值分别为2和3,表示二维数组的行数和列数。在主函数中定义整型数组a[M][N]和b[M][N],它们的初值取上述示例值。定义三个Matrix类的对象A、B和C,并用数组a和b初始化对象A和B。将A加B后赋值给C。然后输出对象C的数据成员a矩阵的值。
▼优质解答
答案和解析
代码如下 供参考
#include <iostream>
using namespace std;
const int M = 2;
const int N = 3;
class MatrixAdd
{
private:
int a[M][N];
public:
MatrixAdd (){}
MatrixAdd ( int x[M][N])
{
int i,j;
for(i = 0; i < M; i ++)
for(j = 0; j < N; j ++)
a[i][j] = x[i][j];
}
MatrixAdd operator+(MatrixAdd &b)
{
MatrixAdd t;
int i,j;
for(i = 0; i < M; i ++)
for(j = 0; j < N; j ++)
t.a[i][j] = a[i][j] + b.a[i][j];
return t;
}
void operator=(MatrixAdd b)
{
int i,j;
for(i = 0; i < M; i ++)
for(j = 0; j < N; j ++)
a[i][j] = b.a[i][j];
}
void show( )
{
int i,j;
for(i = 0; i < M; i ++)
{
for(j = 0; j < N; j ++)
cout << a[i][j] << '\t';
cout << endl;
}
}
};
int main()
{
int a[M][N] = {{1,2,3},{4,5,6}};
int b[M][N] = {{2,2,2},{3,3,3}};
MatrixAdd A(a), B(b),C;
C = (A +B);
C.show();
return 0;
}
看了 c++运算符的重载定义一个类...的网友还看了以下:
数据库物理设计完成后,进入数据库实施阶段,下述工作中,()一般不属于该阶段的工作。A.加载数据B.系 2020-05-24 …
参加团体操表演的同学排成一个实心方阵为了使这个方阵增加1行、1列共增加了35人这样排成的方阵有多少 2020-06-03 …
矩阵乘法中列和行怎么乘啊?1,左面矩阵的行X右边距真的列?2,矩阵乘法要求左面行数和右边列数相等才 2020-06-10 …
c++运算符的重载定义一个类MatrixAdd,其数据成员为一个M*N的矩阵(即二维数组),其中M 2020-06-12 …
两方阵相加再求逆的表达式问题两个方阵相加再求逆化为其中一个方阵的逆阵和一个新方阵的和,求该新方阵的 2020-06-18 …
(VB编程序)矩阵的加法运算.两个相同阶数的矩阵A和B相加,是将相应位置上的元素相加后放到同阶矩阵C 2020-11-06 …
加点的字与“登载”的“载”意义相同的一项是()A、一年半载B、历史记载C、载歌载舞D、满载而归加点的 2020-11-10 …
阅读下文,完成5-7题。热浪一阵比一阵热,飓风一场比一场猛,海平面越来越高,这些都是地球暖化对人类发 2021-01-11 …
阅读下文,完成第1~3题。热浪一阵比一阵热,飓风一场比一场猛,海平面越来越高,这些都是地球暖化对人类 2021-01-11 …
数据结构课程设计:稀疏矩阵操作任务:(1)完成一稀疏矩阵转置,(2)能够完成两个稀疏矩阵相加,(3) 2021-01-18 …