• C++操作符重载-------类成员操作符重载


    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
    ";
        else
            cout<<sec<<"seconds
    ";
    
    }
    
    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类,并以引用的形式传。

  • 相关阅读:
    DB9 ------ 接口定义
    以太网 ------ Auto-Negotiation(自动协商)
    Qt ------ 添加某个功能,比如(QSerialPort)注意事项
    Modbus
    Centos7.5 安装JDK1.8 步骤
    Kafka 消息中间件
    使用RabbitMQ实现分布式事务
    RabbitMq的环境安装
    RabbitMQ消息中间件的用法
    基于Docker+Jenkins实现自动化部署
  • 原文地址:https://www.cnblogs.com/ccccnzb/p/3567530.html
Copyright © 2020-2023  润新知