首页 > 代码库 > 6、多态性-2、运算符重载
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、运算符重载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。