在C++中我们往往使用赋予运算符新的功能的方式来使它可以去进行新的操作,执行新的行为,这也更贴近我们C++面向对象编程的核心。C++是对C的增强,在原来面向过程的机制基础上,对C语言的功能做了不少扩充,增强了对面向对象的支持。
首先我们定义输入输出流的头文件,以及命名空间,接下来我们定义一个复数类:
在这个类中我们需要写两部分东西,一是数据成员,二是成员函数。 然后我们进行默认构造函数的定义,以及对一系列运算符的重载,对于“>>”“<<”的重载我们只能使用友元函数来进行重载,而不能将它作为成员函数,因为它的左值必须为同类对象。而对于双目运算符我习惯将它声明为友元函数,单目运算符则是直接写为成员函数。这些函数我们都将在类内声明,类外定义,这样可以更好的体现C++的封装性。而以下便是函数的定义部分:
在类外定义成员函数时一定要记得,带上类名与作用域运算符,以及谨记运算符重载函数的模板。
最后我们将在主函数创建对象,写函数语句来调用函数,验证我们前面的代码是否正确,是否能够实现我们想要的功能。以下便是主函数代码:
在我们写完主函数并且执行整个代码之后,得到的结果如下:
显然,我们以经实现了通过对运算符进行重载,进而实现复数的加减、自减以及大小比较。