运算符重载
- 运算符重载
概念
对已有的运算符赋予新的含义,用一个运算符表示不同功能的运算,从而适用于用户自定义类型的数据(比如复数、矩阵等)之间的运算 - 运算符重载
方法
定义一个重载运算符函数,在需要时系统自动调用该函数,完成相应的运算。
运算符重载实质上是函数的重载。
运算符重载函数的格式:
函数类型 operator 运算符(形参)
{ …} - 重载形式:
重载为类成员函数
重载为友元函数 - 用成员函数实现运算符重载函数
调用格式是“对象名.成员名
”
此时对象就是一个参与运算的操作数
除此之外还需要另一个操作数 - 重载运算符的
规则(限制)
- C++中可以重载除下列运算符外的所有运算符:. .* :: ?:
- 只能重载C++语言中已有的运算符,不可臆造新的。
- 不改变原运算符的优先级和结合性。
- 不能改变操作数个数。
- 经重载的运算符,其操作数中至少应该有一个是自定义类型。
实验内容
分别输入两个2*3的矩阵,利用运算符重载,计算两个矩阵的和文章来源:https://www.toymoban.com/news/detail-433568.html
代码展示
#include <iostream>
using namespace std;
class Matrix
{
private:
int i,j;
int m[2][3];
public:
Matrix(); //声明构造函数
Matrix operator+(Matrix &m2); //运算符重载函数
void input() //输入矩阵函数
{
for (i=0;i<2;i++)
{
for (j=0;j<3;j++)
cin>>m[i][j];
}
}
void display() //输出矩阵函数
{
for (i=0;i<2;i++)
{
for (j=0;j<3;j++)
{
cout<<m[i][j]<<" ";
}
cout<<endl;
}
}
};
Matrix::Matrix() //定义构造函数
{
for (int i=0;i<2;i++)
{
for (int j=0;j<3;j++)
{
m[i][j]=0;
}
}
}
Matrix Matrix::operator+(Matrix &m2) //定义运算符重载函数
{
Matrix M;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
M.m[i][j]=m[i][j]+m2.m[i][j];
//相当于M.m[i][j]=this->m[i][j]+m2.m[i][j];
}
}
return M;
}
int main()
{
Matrix a,b,c;
cout<<"请输入一个2x3矩阵a="<<endl;
a.input();
cout<<"请输入一个2x3矩阵b="<<endl;
b.input();
c=a+b;
//相当于a.operator+(b)
cout<<"这两个矩阵的和为c=\n";c.display();
return 0;
}
输出结果
文章来源地址https://www.toymoban.com/news/detail-433568.html
到了这里,关于【C++实验】运算符重载(两个矩阵相加)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!