我有有,月,日和年的變量定義的日期類的頭文件和重載增量法:C++重載增量運算符
mydate operator++(int) {
return mydate(m, d+1, y);
}
和主CPP包括了頭,所以一旦我運行cout<<dateXY++;
它顯示日期遞增1,但是,它不保留對象的值,而是將其重置爲原始值。因此,如果我在增量後放置cout<<dateXY;
,它會顯示原始日期。
我可以修改運算符重載,以便對象保持該值嗎?
我有有,月,日和年的變量定義的日期類的頭文件和重載增量法:C++重載增量運算符
mydate operator++(int) {
return mydate(m, d+1, y);
}
和主CPP包括了頭,所以一旦我運行cout<<dateXY++;
它顯示日期遞增1,但是,它不保留對象的值,而是將其重置爲原始值。因此,如果我在增量後放置cout<<dateXY;
,它會顯示原始日期。
我可以修改運算符重載,以便對象保持該值嗎?
假設這個函數是mydate
類的成員函數(就沒有太大的意義,否則),您需要創建的mydate
一個臨時的實例與老價值,增加this
的值,並返回臨時實例。
像
mydate operator++(int) {
mydate tmp(m, d, y);
// set date to date + 1
return tmp;
}
這是遞增運算符是如何工作的,它增加值,但增量之前返回舊值。
是的,你可以。所以,這樣做(存儲遞增的值)。 –
我的意思是有可能在h文件中做?當然,我總是可以在主文件中做date = date ++,但這不是我的問題 – Norgul