1 //8_2.cpp
 2 #include <iostream>
 3 using namespace std;
 4 class Clock    {    //时钟类声明定义
 5 public:    //外部接口
 6     Clock(int hour = 0, int minute = 0, int second = 0);
 7     void showTime() const;
 8     Clock& operator ++ ();    //前置单目运算符重载
 9     Clock operator ++ (int);    //后置单目运算符重载
10 private:    //私有数据成员
11     int hour, minute, second;
12 };
13 
14 Clock::Clock(int hour/* = 0 */, int minute/* = 0 */, int second/* = 0 */) {    //构造函数
15     if (0 <= hour && hour < 24 && 0 <= minute && minute < 60 && 0 <= second && second < 60) {
16         this->hour = hour;
17         this->minute = minute;
18         this->second = second;
19     } else
20         cout << "Time error!" << endl;
21 }
22 
23 void Clock::showTime() const {    //显示时间函数
24     cout << hour << ":" << minute << ":" << second << endl;
25 }
26 
27 Clock & Clock::operator ++ () {    //前置单目运算符重载函数
28     second++;
29     if (second >= 60) {
30         second -= 60;
31         minute++;
32         if (minute >= 60) {
33             minute -= 60;
34             hour = (hour + 1) % 24;
35         }
36     }
37     return *this;
38 }
39 
40 Clock Clock::operator ++ (int) {    //后置单目运算符重载
41     //注意形参表中的整型参数
42     Clock old = *this;
43     ++(*this);    //调用前置“++”运算符
44     return old;
45 }
46 
47 int main() {
48     int i=0;
49     Clock myClock(23, 59, 59);
50     cout << "First time output: ";
51     myClock.showTime();
52     cout << "Show myClock++:    ";
53     (myClock++).showTime();
54     cout << "Show ++myClock:    ";
55 
56     for(;i<10000;i++)
57     (++myClock).showTime();
58     getchar();
59     getchar();
60     return 0;
61 }

 时钟类运算符重载

相关文章:

  • 2021-05-29
  • 2021-07-12
  • 2022-01-19
  • 2021-10-24
  • 2022-12-23
  • 2021-09-28
  • 2021-11-17
猜你喜欢
  • 2022-01-09
  • 2021-12-02
  • 2021-05-31
  • 2021-08-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案