1. 语法
返回类型 类名::operator 操作符(形参表)
{
函数体代码;
}
2. 实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#include <iostream> #include <ctime> using
namespace std;
class
StopWatch{
public :
StopWatch(); //构造函数
void
setTime( int
newMin, int
newSec); //设置秒表时间
StopWatch operator - (StopWatch&); //计算两个秒表的时间
void
showTime();
private :
int
min;
int
sec;
}; StopWatch::StopWatch() { min=0;
sec=0;
} void
StopWatch::setTime( int
newMin, int
newSec)
{ min=newMin;
sec=newSec;
} StopWatch StopWatch::operator - (StopWatch& anotherTime) { StopWatch tempTime;
int
seconds; //两个秒表时间间隔的秒数
seconds=min*60+sec-(anotherTime.min*60+anotherTime.sec);
if (seconds<0)
seconds=-seconds;
tempTime.min=seconds/60;
tempTime.sec=seconds%60;
return
tempTime;
} void
StopWatch::showTime()
{ if (min>0)
cout<<min<< "minutes" <<sec<< "seconds\n" ;
else
cout<<sec<< "seconds\n" ;
} int
main()
{ StopWatch startTime,endTime,usedTime;
cout<< "按回车开始!" ;
cin.get(); //等待用户输入
time_t
curtime= time (0); //获取当前系统时间
tm
tim=* localtime (&curtime); //根据当前时间获取当地时间
int
min,sec;
min=tim.tm_min; //得到当地时间的分
sec=tim.tm_sec; //得到当地时间的秒
startTime.setTime(min,sec);
cout<< "按回车结束!" ;
cin.get(); //等待输入
curtime= time (0);
tim=* localtime (&curtime);
min=tim.tm_min;
sec=tim.tm_sec;
endTime.setTime(min,sec);
usedTime=endTime-startTime;
cout<< "用时。。。" ;
usedTime.showTime();
return
0;
} |
其中包含以下信息
a. 函数名是operator —,表示重载操作符 -;
b. StopWatch::表示重载该操作符的类是StopWatch类;
c. 该函数返回类型是StopWatch类型
d. 该函数带一个参数,参数类型是StopWatch类,并以引用的形式传。