复数相减之运算符的重载

简介: 复数相减之运算符的重载

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

   所谓运算符的重载,我们可以这样理解;我们知道C语言中,我们所使用的“+,-,*,/”等符号都是用于数学运算表达的,可以用于数值与非数值之间,还可以用于表达式和变量常量之间,其表达的含义各不相同,所以我们称这几个符号除了可以用于数学数值计算以外,我们还可以有其他含义,这就是运算符的重载。

     例子说明

在数学表达式中:

(1).a=b;表示a的数值等于b的数值;

在C语言编程中:

(2).a=b;表示把b的值赋给a;

在这里,“=”就有两个含义,我们称起为等号的重载

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

例题说明:

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

解法:

1.建立一个类Complex,在声明一个构造函数Complex,并在类内进行构造函数的初始化,还需定义一个类的成员函数display用于计算这一步骤环节。

2.类的私有数据存储realimag,分别存储复数的实数虚数

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.运算符的重载可以类比函数重载的思路去理解

目录
相关文章
|
5月前
|
存储 编译器 C语言
【表达式求值】整型提升和算术转换
【表达式求值】整型提升和算术转换
46 0
|
5月前
|
C++
C++类自加自减与<<运算符的重载实现
C++类自加自减与<<运算符的重载实现
|
12月前
|
算法 C语言
算数、赋值、单目操作符介绍
算数、赋值、单目操作符介绍
65 0
|
5月前
|
C#
C# 运算符详解:包含算术、赋值、比较、逻辑运算符及 Math 类应用
运算符用于对变量和值执行操作。在C#中,有多种运算符可用,包括算术运算符、关系运算符、逻辑运算符等。
72 1
|
11月前
|
Linux C语言 C++
操作符&算数转换题
操作符&算数转换题
61 0
隐式类型转换 算术转换 操作符的属性
隐式类型转换 算术转换 操作符的属性
51 0
|
C语言 索引
操作符续(整型提升与算术转换)
操作符续(整型提升与算术转换)
76 0
复数四则运算
复数四则运算
114 0
【C++之重载类型转换运算符】复数与 double 数相加
【C++之重载类型转换运算符】复数与 double 数相加
【C++之运算符重载2】矩阵相加 重载运算符 “+”、“<<”、“>>”
【C++之运算符重载2】矩阵相加 重载运算符 “+”、“<<”、“>>”