运算符重载。跟一般函数的重载是一样的,都属于函数的重载范畴。
实现函数重载的一个主要规则:
1)同名函数(同一运算符)的参数必须不同,不同之处可以是参数的类型或参数的个数。
--编译器主要根据这一点来区分调用哪一个函数(或使用运算符)
2)其次,根据参数类型的匹配程度,来决定使用同名函数的次序。
例:
a)int max(int a, int b);
b)float max(float a, int b);
c)double max(double a, double b);
如果是int ret = max(1,2);编译器选择函数a)执行。
但若是double ret = max(1.0,2);则即不执行a),也不执行b),而执行c)。
因为默认情况下,1.0编译器是认为它是double类型的,且返回值类型与c)匹配,
故c)的匹配程度最高,而选择c)执行。
大概也就是你所讲的根据操作数的不同来区分,希望上面的答案能使你满意。
没有被重载的运算符还是跟以前一样用,不影响