C++声明一个复数类Complex?

定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。参加运算的两个运算符可以都是类对象。也可以其中一个是整数,顺序任意。例如:c1+c2,i+c1,c1+i 均合法(设i为整数,c1 c2为复数)。编程序 分别求两个复数之和,整数和复数之和。

内容侵权 涉嫌营销 内容抄袭 违法信息 其他

已经收到您得举报信息,我们会尽快审核

首先回忆下以前学的函数重载

  • 函数重载的本质为相互独立的不同函数
  • 通过函数名函数参数来确定函数调用
  • 无法直接通过函数名得到重载函数的入口地址
  • 函数重载必然发生在同一个作用域
  • 静态成员函数能与普通成员函数建立重载关系
  • 全局函数和成员函数不能构成重载关系

大家都知道,在C里,有'+,-,*,/'这些操作符,且它们的功能就是实现普通变量运算。

由于C++是面向对象的,遇到的变量大多都是对象,所以优化了C里的操作符,使它们拥有了重载能力.能通过一定方式,使对象能进行'+,-,*,/'等运算.

操作符的重载是以函数的方式进行.

操作符重载,通过operator关键字在函数前定义:

操作符重载有几种方式 : 全局操作符重载函数、全局操作符重载函数

编译器首先会判断运算的若是对象,就会先从类里寻找成员操作符重载函数,若没找到,就会再去全局里寻找全局操作符重载函数.

  • 操作符重载不能改变原操作符的优先级
  • 操作符重载不能改变操作数的个数
  • 在C++中,有些操作符必须需要有对象支持,所以只能为成员函数.这种被称为一元操作符

 比如赋值(=)、下标([])、下标([])、调用(())和成员访问箭头(->):

  • 有些操作符既可以当做成员操作符重载函数,也可以当做全局操作符重载函数,由于函数参数可以多个,便称为二元操作符

以加法(+)为例,当设为全局操作符重载函数时,执行

以加法(+)为例,当设为成员操作符重载函数时,执行

多个重载的操作符重载函数

由于操作符重载函数带参数,所以可以存在多个相同的操作符重载函数

1.接下来,来个全局操作符重载函数例子:

//声明友元函数,可以使用私有成员变量

2.换成成员操作符重载函数例子:

由于C++里,没有复数的慨念,而在刚刚又学习了操作符重载,所以接下来便通过操作符重载来实现复数类

+ - :  结果 = 两个实部进行加减,两个虚部进行加减

求模成员函数 : 等于a^2+b^2的算术平方根

所以复数类的操作符重载共有以下几个:

我要回帖

更多关于 c语言复数运算结构体 的文章

 

随机推荐