ตัวดำเนินการส่วนเพิ่ม (++) และส่วนลดลง (--) หน่วยพื้นที่ 2 ตัวดำเนินการ unary ที่จำเป็นซึ่งมีอยู่ใน C++ ตัวอย่างต่อไปนี้จะอธิบายว่าตัวดำเนินการ increment (++) สามารถโอเวอร์โหลดได้อย่างไรสำหรับคำนำหน้าและการใช้ postfix ในทำนองเดียวกัน คุณสามารถโอเวอร์โหลดโอเปอเรเตอร์ (--)
ตัวอย่าง
#include <iostream> using namespace std; class Time { private: int hours; int minutes; public: Time(int h, int m) { hours = h; minutes = m; } void display() { cout << "H: " << hours << " M:" << minutes <<endl; } // overload prefix ++ operator Time operator++ () { ++minutes; // increment current object if(minutes >= 60) { ++hours; minutes -= 60; } return Time(hours, minutes); } // overload postfix ++ operator Time operator++( int ) { Time T(hours, minutes); // increment current object ++minutes; if(minutes >= 60) { ++hours; minutes -= 60; } // return old original value return T; } }; int main() { Time T1(11, 59), T2(10,40); ++T1; T1.display(); ++T1; T1.display(); T2++; T2.display(); T2++; T2.display(); return 0; }
ผลลัพธ์
สิ่งนี้ให้ผลลัพธ์ -
H: 12 M:0 H: 12 M:1 H: 10 M:41 H: 10 M:42