#include <iostream>
#include <fstream>
using namespace std;
class binaryOperators
{
public:
int i;
binaryOperators (int tempI = 0)
{
i = tempI;
}
binaryOperators operator<< (const binaryOperators &right);
};
binaryOperators operator<< (const binaryOperators &left, const binaryOperators &right)
{
cout << "\nOne";
return left;
}
binaryOperators binaryOperators :: operator<< (const binaryOperators &right)
{
cout << "\nTwo";
return *this;
}
int main()
{
binaryOperators obj;
// Compiler's behavior: This statement calls the overloaded operator << declared inside the class.
obj << 5 << 3 << 2;
// Compiler's behavior: This statement calls the overloaded operator << declared outside the class.
2 << obj;
return 0;
}
main()
関数内のコメントを書きました。
この種のコンパイラの動作の理由は何ですか?オーバーロードされた演算子のオーバーロード
この動作はコンパイラに依存しますか?
LinuxのGCC
実際には、より良い変数名を書くようにしてください。 'l'は' 1'と非常によく似ています。 – Default
@Default申し訳ありませんが、次回は気をつけます。 –
新しい投稿を新規投稿してください。そうしないと、通知が届きません。 –