应该在c ++中返回const数据类型后增加运算符重载

Nee*_*ury 5 c++ operator-overloading

对于像int这样的基本数据类型,代码片段会出现编译错误

i++ = 2;
Run Code Online (Sandbox Code Playgroud)

所以显然i++不是左值

但是当用c ++重载自定义类时,大多数人都认为post增量运算符的签名应该是这样的

Date Date::operator++(int) {
    Date temp = *this;
    // do increment
    return temp;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么不应该返回类型const Date而不是Date原始类型.