编一个程序,用成员函数重载运算符“+”和“-”,将两个矩阵(这两个矩阵均为2行3列)相加和相减。

编一个程序,用成员函数重载运算符“+”和“-”,将两个矩阵(这两个矩阵均为2行3列)相加和相减,要求第一个矩阵的值由构造函数设置,另一个矩阵的值由键盘输入。要求:类名是M... 编一个程序,用成员函数重载运算符“+”和“-”,将两个矩阵(这两个矩阵均为2行3列)相加和相减,要求第一个矩阵的值由构造函数设置,另一个矩阵的值由键盘输入。
要求:类名是Maxtrix,私有变量为int maxtrix[2][3]
1.一个构造函数,矩阵元素分别从1开始递增
2.一个输入函数setMatrix(),用于输入矩阵中的元素值
3.一个输出函数outputMatrix(),输出矩阵,按行输出,并且每个元素宽度为5
4.一个“+”重载的成员函数函数,用于实现两个矩阵的相加
5.一个“-”重载的友元函数,用于实现两个矩阵的相减
展开
 我来答
娱乐小八卦啊a
高粉答主

2019-10-30 · 娱乐小八卦,天天都知道
娱乐小八卦啊a
采纳数:256 获赞数:117848

向TA提问 私信TA
展开全部

此题考察的知识点是:类的成员函数。代码如下:

#include <iostream>

using namespace std;

class Matrix                                          //定义Matrix类

{public:

Matrix();                                          //默认构造函数

friend Matrix operator+(Matrix &,Matrix &);        //重载运算符“+”

void input();                                      //输入数据函数

void display();                                    //输出数据函数

private:

int mat[2][3];

 };


扩展资料

C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。

当调用一个重载函数或重载运算符时,编译器纯瞎芦通过把所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函神御数或重载运算符的过程,称为重载决策。

在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。

参考资料来源:

百度百科——做带类的成员函数

大野瘦子
高粉答主

2019-11-11 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:33.8万
展开全部

代码如下:

#include<iostream>

#include<iomanip>

using namespace std;

class Maxtrix

{

private:

int maxtrix[2][3];

public:

Maxtrix()

{

for(int i=0;i<2;i++)

{

for(int j=0;j<3;j++)

{

maxtrix[i][j]=3*(i)+j+1;

}

}

}

void SetMaxtrix()

{

cout<<"输入2维数组,数字间以空格隔开"<<endl;

for(int i=0;i<2;i++)

{

for(int j=0;j<3;j++)

{

cin>>maxtrix[i][j];

}

}

}

void OutputMaxtrix()

{

cout<<"矩阵输出:"<<endl;

for(int i=0;i<2;i++)

{

for(int j=0;j<3;j++)

{

cout<<setw(5)<汪旅<maxtrix[i][j];

}

cout<<endl

}

}

Maxtrix operator+(const Maxtrix& max)const

{

Maxtrix m;

for(int i=0;i<2;i++)

{

for(int j=0;j<3;j++)

{

m.maxtrix[i][j]=this->maxtrix[i][j]+max.maxtrix[i][j];

}

}

return m;

}

friend Maxtrix operator-(const Maxtrix& op1,const Maxtrix& op2);

};

Maxtrix operator-(const Maxtrix& op1,const Maxtrix& op2)

{

Maxtrix m;

for(int i=0;i<2;i++)

{

for(int j=0;j<3;j++)

{

m.maxtrix[i][j]=op1.maxtrix[i][j]-op2.maxtrix[i][j];

}

}

return m;

}

void main()

{

Maxtrix m;

Maxtrix op1,op2;

op2.SetMaxtrix();

m.OutputMaxtrix();

op1.OutputMaxtrix();

op2.OutputMaxtrix();

m=op1+op2;

m.OutputMaxtrix();

op1.OutputMaxtrix();

op2.OutputMaxtrix();

m=op1-op2;

m.OutputMaxtrix();

op1.OutputMaxtrix();

op2.OutputMaxtrix();

}

扩展资料:

注意事项

C++允许在同一个作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。

重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但他们的参数列表和定义(实现)不相同。当调用一个重载函数或重载运算符时,编译器通过把函数所使用的参数类型和定义中的参数类型进行比较,决定选用最合适的定义。

在同一个作用域内,可以声明几个坦陵陪功能类似的同名函数,但是这些同名函数的形式参数(参数个数,类型或者顺序)必须不同,不能仅通过返回类型的不同来重载函数。

/***

overload.cpp

***/

#include<iostream>

using namespace std;

class printData

{

    public:

        void print(int i)

        {

            cout << "integer is : " << i << endl;

        }

        void print(double f)

        {

            cout << "flota is : " << f << endl;

        }

        void print(char c[])

        {

            cout << "char is : " << c << endl;

        }

};

int main()

{

    printData pd;

    pd.print(5);

    pd.print(300.1);   

   char c[] = "hello C++";

   让蠢 pd.print(c);

    return 0;

}

运行结果:

exbot@ubuntu:~/wangqinghe/C++/20190807$ vim overload.cpp

exbot@ubuntu:~/wangqinghe/C++/20190807$ g++ overload.cpp -o overload

exbot@ubuntu:~/wangqinghe/C++/20190807$ ./overload

integer is : 5

flota is : 300.1

char is : hello C++

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seamaswong
2011-06-24 · TA获得超过1122个赞
知道小有建树答主
回答量:483
采纳率:0%
帮助的人:378万
展开全部
#include<隐歼孙春iostream>
#include<iomanip>
using namespace std;

class Maxtrix
{
private:
int maxtrix[2][3];
public:
Maxtrix()
{
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
maxtrix[i][j]=3*(i)+j+1;
}
}
}
void SetMaxtrix()
{
cout<<"输入2维数组,数字间以空格隔开"<<endl;
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
cin>>maxtrix[i][j];
}
}
}
void OutputMaxtrix()
{
cout<<"矩阵输出:"<<endl;
for(int i=0;i<2;i++)
{
for(int j=0;j<灶凯冲3;j++)
{
cout<<setw(5)<<maxtrix[i][j];
}
cout<<endl;
}
}
Maxtrix operator+(const Maxtrix& max)const
{
Maxtrix m;
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
m.maxtrix[i][j]=this->maxtrix[i][j]+max.maxtrix[i][j];
}
}
return m;
}
friend Maxtrix operator-(const Maxtrix& op1,const Maxtrix& op2);
};

Maxtrix operator-(const Maxtrix& op1,const Maxtrix& op2)
{
Maxtrix m;
for(int i=0;i<2;i++)
{
for(int j=0;j<3;j++)
{
m.maxtrix[i][j]=op1.maxtrix[i][j]-op2.maxtrix[i][j];
}
}
return m;
}

void main()
{
Maxtrix m;
Maxtrix op1,op2;
op2.SetMaxtrix();
m.OutputMaxtrix();
op1.OutputMaxtrix();
op2.OutputMaxtrix();

m=op1+op2;

m.OutputMaxtrix();
op1.OutputMaxtrix();
op2.OutputMaxtrix();

m=op1-op2;
m.OutputMaxtrix();
op1.OutputMaxtrix();
op2.OutputMaxtrix();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kissofblueice
2011-06-24 · TA获得超过471个赞
知道小有建树答主
回答量:814
采纳率:100%
帮助的人:582万
展开全部
懒人是很多的。。同样足见现在的通信的资源获取手段比我们上学那会儿多多了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alexanderxx
2011-06-24
知道答主
回答量:40
采纳率:0%
帮助的人:18.9万
展开全部
你学习一下操作符重载那一章节就能完成了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式