C++ 看上去有點奇怪的運算子過載
阿新 • • 發佈:2018-11-16
總時間限制:
1000ms
記憶體限制:
65536kB
// 在此處補充你的程式碼
描述
下面的MyInt類只有一個成員變數。MyInt類內部的部分程式碼被隱藏了。假設下面的程式能編譯通過,且輸出結果是:
4,1
請寫出被隱藏的部分。(您寫的內容必須是能全部放進 MyInt類內部的,MyInt的成員函式裡不允許使用靜態變數)。
#include <iostream> using namespace std; class MyInt { int nVal; public: MyInt(int n) { nVal = n; } int ReturnVal() { return nVal; }
}; int main () { MyInt objInt(10); objInt-2-1-3; cout << objInt.ReturnVal(); cout <<","; objInt-2-1; cout << objInt.ReturnVal(); return 0; }
輸入
無
輸出
4,1
樣例輸入
無
樣例輸出
4,1
注意,運算子過載是左結合
#include <iostream> using namespace std; class MyInt { int nVal; public: MyInt(int n) { nVal = n; } int ReturnVal() { return nVal; } // 在此處補充你的程式碼 MyInt & operator -(int n) { nVal -= n; return *this; } }; int main() { MyInt objInt(10); objInt - 2 - 1 - 3; cout << objInt.ReturnVal(); cout << ","; objInt - 2 - 1; cout << objInt.ReturnVal(); return 0; }