ฉันมีรหัสเช่นนี้:
std::cout << " a: " << classDate.getDays() << " b: " << classDate++ << " c: " << classDate.getDays();
ฉันโอเวอร์โหลดตัวดำเนินการหลังการเพิ่ม
ในคลาส m_days ตัวแปรมีค่า:
- ก่อนตัวดำเนินการ ++ - 4
- หลังจาก ++ โอเปอเรเตอร์ -5
คำถามของฉันคือ ทำไมผลลัพธ์จาก cout ถึงผิดลำดับ:
a: 5 b: 5 c: 4
ฉันตรวจสอบมันในดีบักเกอร์ ค่าในคลาสถูกต้อง เมื่อฉันเขียนโค้ดดังนี้:
std::cout << " a: " << classDate.getDays();
std::cout << " b: " << classDate++;
std::cout << " c: " << classDate.getDays();
ทุกอย่างถูกต้อง (a: 4 b: 5 c: 5)
เป็นปัญหาลำดับความสำคัญของผู้ปฏิบัติงานหรือไม่
คามิล
b: 5
ได้อย่างไรเมื่อคุณใช้ส่วนเพิ่มภายหลัง นี่เป็นรหัสที่คุณใช้ใช่ไหม - person David Brown   schedule 10.12.2013++
และเรียกมันว่า postfix ผู้ดูแลโค้ดในอนาคตจะพบว่าสิ่งนี้ยากที่จะเข้าใจอย่างน้อยที่สุด - person Mark B   schedule 10.12.2013