我有这样的代码:C++的std :: cout和<<运算符,优先
std::cout << " a: " << classDate.getDays() << " b: " << classDate++ << " c: " << classDate.getDays();
我重载递增运算符。
类m_days变量值:
- 前++运算符 - 4
- 后++ oprator -5
我的问题是,为什么从COUT的结果是错误的顺序:
一个:5 b:5 C:4
我检查在debuger,值I n班是正确的。当我这样写代码时:
std::cout << " a: " << classDate.getDays();
std::cout << " b: " << classDate++;
std::cout << " c: " << classDate.getDays();
一切都正确(a:4 b:5 c:5)。
是运营商的优先级问题?
卡米尔
我不确定在使用后增量时如何得到'b:5'。这是你使用的确切代码吗? –
对不起,我忘了。后增加以整数形式返回新值。 – kolumb
@kolumb然后你已经实现了前缀'++'并将其称为后缀。你的代码的未来维护者至少会发现这很难理解。 –