bool operator==(const fraction &lhs,const fraction &rhs);
这是运算符重载,operator是关键字,就是重新定义==运算符的作用。
lhs指的是==运算符左边的操作数,
rhs指的是==运算符右边的操作数,
const是为了防止参数被修改,因为这里使用的是引用,就是传递地址,就要防止原来的值被修改,
fraction是参数的类型,具体是什么就要看上下文了
operator== 这是运算符重载。bool 返回值类型。const fraction &lhs 只读引用变量,const只读关键字。fraction 变量类型,lhs变量名,&lhs 引用变量。
分割线*——————————————————————————————————————————————————
从语言一级来看,java不支持运算符重载。
String类的"=","+","+=",看似运算符重载,实际不是,只是在java编译器里做了一点手脚。
java编译器对String的运算符做了特殊处理。
比如:
String s = "s1";
s += "s2";
编译器转换成了:
String s = "s1";
s = (new StringBuilder()).append(s).append("s2").toString();
如果你有Java Decompiler(如jad),你可以将一个字符串操作的程序反编译来看看。奥妙就在其中。