早教吧作业答案频道 -->其他-->
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++运算符的重载定义一个类...的网友还看了以下:
如图,将一副三角尺叠放在一起,使直角的定点重合于o点,若BOD=1/4AOC,则AOC= 2020-04-13 …
已知函数f(x)的定义域为R,对任意实数m,n,满足f(1/2)=2,且f(m+n)=f(m)+f 2020-06-03 …
如图所示,质量相等的重物A,B用绕过轻小的定滑轮M,N的细绳连接在一起,重物A,B处于同一水平面上 2020-07-21 …
特征值和特征向量那,有个定理说n重特征根对应n个线性无关的特征向量,那秩为1的矩阵,如果有n-1重 2020-07-26 …
重心的定义重心:重力在物体上的叫做重心 2020-07-30 …
高等代数证明求神如果f'(x)|f(x),证明:f(x)有n重根,其中n为f(x)的次数(证明中你 2020-07-31 …
统计和计量当中,自由度到底怎么计算?求大神搭救啊求样本方差时,自由度是n-1:单纯回归分析时,x的 2020-08-02 …
英语翻译wecreatenewpaths,evenentrielynewbraincells,tha 2020-11-26 …
[构词串记]1.tooth(n.)—(n.)牙痛2.head(n.)—(n.)头痛3.climb(v 2020-12-21 …
[构词串记]1.tooth(n.)—(n.)牙痛2.head(n.)—(n.)头痛3.climb(v 2020-12-21 …