当然上面这个例子可能不是那么科学,但作为对于初学重载的同学来说已经够形象说明了~
来看这样一个例子,我想让你用c++实现一个复数相加的函数,你一定会想,这不是很简单吗,于是,学过类定义及其使用的你很快就写出了这样一段代码...,另一个是形参对象
的成员。 在将运算符函数重载为成员函数后,如果出现含该运算符的表达式,如 c1+c2,编译系统把
它解释为 c1.operator+(c2) 即通过对象 c1 调用运算符重载函数,...,
而且与运算符函数的类型相同。 因为必须通过类的对象去调用该类的
成员函数,而且只有运算符重载函数返回值与该对象同类型,运算结果才有意
义。
如想将一个复数和一个整数相加,如 c1+i,可以将运算符重载函数作为成...,要求在使用重载运算符时运算符左侧的操作数是整
型量(如表达式 i+c2,运算符左侧的操作数 i 是整数),这时是无法利用前面定义
的重载运算符的,因为无法调用 i.operator+函数。 可想而知,...成员函数,原因是显然的。
C++中可重载的运算符重载为数众多,也存在着一些限制,这些限制包括:
1、为防止用户为标准类型重载运算符,重载后的运算符必须至少有一个是用户自定义类型的数据。