Saya punya kode seperti ini:
std::cout << " a: " << classDate.getDays() << " b: " << classDate++ << " c: " << classDate.getDays();
Saya membebani operator pasca kenaikan secara berlebihan.
di kelas m_days variabel memiliki nilai:
- sebelum operator ++ - 4
- setelah ++ operator -5
Pertanyaan saya adalah, mengapa hasil dari cout urutannya salah:
a: 5 b: 5 c: 4
Saya memeriksanya di debuger, nilai di kelas sudah benar. Ketika saya menulis kode seperti ini:
std::cout << " a: " << classDate.getDays();
std::cout << " b: " << classDate++;
std::cout << " c: " << classDate.getDays();
semuanya benar (a:4 b:5 c:5).
Apakah itu masalah prioritas operator?
Kamil
b: 5
saat Anda menggunakan pasca-kenaikan. Apakah ini kode persis yang Anda gunakan? - person David Brown   schedule 10.12.2013++
dan menyebutnya postfix. Setidaknya pengelola kode Anda di masa depan akan kesulitan memahami hal ini. - person Mark B   schedule 10.12.2013