1. 语法
返回类型 类名::operator 操作符(形参表)
{
函数体代码;
}
2. 实例
#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类,并以引用的形式传。