已采納回答 / qq_慕斯5217645
這是為了避免重定義。在第一次訪問Time.h文件時,由于未定義Time.h,ifndef TIME_H為真,程序會執行#define 和#endif之間的內容;當由多個程序導入頭文件,Time.h被不止一次調用時,若第二次訪問Time.h,由于已經定義過Time.h,ifndef為假,其下程序不執行,就避免了重復定義。
2020-03-30
已采納回答 / 木凡辰
其實準確的來說,Coordinate &是在一起的,表明返回值類型。operator -是在一起的,表明函數名是一個運算符減號。Coordinate::是在一起的,表明是哪個作用域下。而函數在書寫時,首先表明返回值類型,所以最開始應該是Coordina&,然后是函數名,但是這個函數是在其他作用域下,所以先聲明作用域Coordinate::,最后寫函數名operator-。所以最后寫出來就是Coordinate& Coordinate::operator- ()。
2019-03-31
已采納回答 / 慕妹615124
如果返回的時 *this,可以實現連“連”的效果,對于+的話,可以 object1 + object2 + object3,如果返回的void的話,只能object1 + object2
2019-03-14
已采納回答 / 慕哥3558660
你這個把兩個后置++放在一條cout語句中輸出,按照C++標準會產生一個未定義的行為。編譯器在處理輸出流的過程是按照自右向左的順序對各輸出項進行求值的。所以先進行((*coor)++).getY()的求值得到3,再進行((*coor)++).getX()的求值得到2,最后按順序輸出2,3。要想得到1,4最好將其分成兩條cout語句來寫。這就和int a = 1; cout << a++ << a++ << endl;得到的結果是2,1的道理是一樣的。
2018-10-08
已采納回答 / zyczxl
因為所有的函數都有自帶的(隱藏的)this指針。你如果有自定義括號內的變量你就返回它,比如old。如果沒有,你就得返回一個this指針。就像你c++寫main函數的時候,如果你是int?main(),你沒有在最后寫return 0,系統會報錯的。
2018-08-15