爲什麼我可以在LHS和RHS中過載和使用++
操作符,而+
只能在LHS模式下工作?過載++和+操作符
class B {
public:
string operator ++() { return "hello"; }
string operator +() { return "hello2"; }
};
int main()
{
B b;
string s = +b ;
s = b+ ; // compile error syntax error : ';'
s = b++;
s = ++b;
return 0;
}
因爲「b +」是該運算符的無效語句,是否過載 – 2014-10-31 16:27:11
C僅在前綴形式中定義了一元「+」,而在前綴和後綴形式中定義了「++」和「 - 」。 C++允許你指定爲一個表達式執行什麼,但是不會改變什麼是允許或不允許的基本語法,所以你仍然只能得到一元'+'的前綴形式。 – 2014-10-31 16:27:16