0
点赞
收藏
分享

微信扫一扫

复数相减之运算符的重载


一.运算符重载的概念理解

   所谓运算符的重载,我们可以这样理解;我们知道C语言中,我们所使用的“+,-,*,/”等符号都是用于数学运算表达的,可以用于数值与非数值之间,还可以用于表达式和变量常量之间,其表达的含义各不相同,所以我们称这几个符号除了可以用于数学数值计算以外,我们还可以有其他含义,这就是运算符的重载。
     例子说明
在数学表达式中:
(1).a=b;表示a的数值等于b的数值;
在C语言编程中:
(2).a=b;表示把b的值赋给a;
在这里,“=”就有两个含义,我们称起为等号的重载

二.运算符重载的例子演示

例题说明:

  请用函数重载的方式计算两个复数的减法。

解法:
1.建立一个​​​类Complex​​​,在声明一个​​构造函数Complex​​​,并在类内进行构造函数的初始化,还需定义一个​​类的成员函数display​​​用于计算这一步骤环节。
2.类的私有数据存储​​​real​​​和​​imag​​​,分别存储复数的​​实数​​​和​​虚数​​​。
3.在​​​public​​​公有数据中声明一个运算符重载函数,其关键字为​​operator​​,声明方式如下:

Complex operator-(Complex &c2);

类名  operator运算符号(类名 &形参);

class Complex
{
public:
Complex()
{
real = 0;
imag = 0;
}
Complex(double r, double i)
{
real = r;
imag = i;
}
Complex operator-(Complex &c2);//运算符重载函数
void display();
private:
double real;
double imag;
};

4.重载函数的定义

Complex Complex::operator-(Complex &c2)
{
return Complex(real - c2.real, imag - c2.imag);
}

在return语句中,我们对形参接收的两个数值分别进行虚数相减虚数,实数相减实数。
  ​​​real-c2.real​​​:实数减实数
  ​​​imag-c2.imag​​;虚数减虚数

5.构造函数的定义:

void Complex::display()
{
cout << "(" << real << "," << imag << "i)" << endl;
}

6.编写主函数:

int main()
{
Complex c1(3, 4), c2(5, -10), c3;
c3 = c1 - c2;
cout << "c1=";
c1.display();
cout << "c2=";
c2.display();
cout << "c1-c2=";
c3.display();
return 0;
}

7.例题全部代码:

#include<iostream>
using namespace std;
class Complex
{
public:
Complex()
{
real = 0;
imag = 0;
}
Complex(double r, double i)
{
real = r;
imag = i;
}
Complex operator-(Complex &c2);
void display();
private:
double real;
double imag;
};
Complex Complex::operator-(Complex &c2)
{
return Complex(real - c2.real, imag - c2.imag);
}
void Complex::display()
{
cout << "(" << real << "," << imag << "i)" << endl;
}
int main()
{
Complex c1(3, 4), c2(5, -10), c3;
c3 = c1 - c2;
cout << "c1=";
c1.display();
cout << "c2=";
c2.display();
cout << "c1-c2=";
c3.display();
return 0;
}

8.执行结果:

复数相减之运算符的重载_复数

三.总结

1.运算符的重载可以类比函数重载的思路去理解


举报

相关推荐

0 条评论