6多态性-2运算符重载
Posted 郭润
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6多态性-2运算符重载相关的知识,希望对你有一定的参考价值。
1、c++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型(如类),也需要有类似的运算操作。例如,下面的程序段定义了一个复数类:
class complex
{
public:
complex(double r=0.0,double i=0.0){real=r;imag=i;}
void display();
private:
double real;
double imag;
};
于是我们可以这样声明复数类的对象:complex a(10,20),b(5,8);
那么如何对这两个对象进行加法运算呢?我们当然希望能使用"+"运算符,写出表达式"a+b",但是编译的时候会出错,因为编译器不知道该如何完成这个加法。这时候就需要我们自己编写程序来说明"+"在作用于complex类对象时,该实现什么样的功能,这就是运算符重载。
运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时导致不同的行为。其实质就是函数重载,在实现过程中,首先把指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参,然后根据实参的类型来确定需要调用的函数,这个过程是在编译过程中完成的。
2、运算符重载的规则
运算符重载的规则如下:
以上是关于6多态性-2运算符重载的主要内容,如果未能解决你的问题,请参考以下文章
C++基础——C++面向对象之重载与多态基础总结(函数重载运算符重载多态的使用)