クラス Date の + 演算子と += 演算子をそれぞれオーバーロードする次のコードがあります。演算子 + は正常にオーバーロードされ、整数 n を取り、Date オブジェクトを n 日増やします。これは、next_day 関数を n 回適用することによって行われます。
inline Date operator+(Date d, int n)
{
for(char j=1; j<=n; j++){
d=d.next_day(d);
}
return d;
}
inline Date operator+=(Date d, int n)
{
Date p=d+n;
return p;
}
+ 演算子をオーバーロードしたので、それを使用して += のオーバーロードも定義しています。しかし、コンパイルでエラーは発生しませんでしたが、オーバーロードされた += を使用すると、何の効果もないようです。
これが私のmain.cppです:
#include <iostream>
#include "Date.h"
using namespace std;
int main() {
Date Initialday = Date (12,1,2012);
Initialday+=1;
cout <<"Next day = "<< Initialday <<endl;
return 0;
}
メイン関数を実行すると、2012 年 12 月 2 日ではなく 2012 年 12 月 1 日になります。私は何を間違っていますか?注: 私はすでに << をオーバーロードして Date オブジェクトを読み取り可能な形式で出力しているので、それは問題ではないと思います。