zoukankan      html  css  js  c++  java
  • 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类,并以引用的形式传。

  • 相关阅读:
    2017-2018-2 20179202《网络攻防技术》第一周作业
    《构建之法(第三版)》第四章
    《深入理解计算机系统(第三版)》第四章
    《文献管理与信息分析》第三章
    我们不一样
    linux centOS 7安装mysql 5.7.24
    centOS 8 使用dnf安装Docker
    centOS7服务器/dev/vda1空间100%,没有可用空间
    深刻理解 Docker 镜像大小
    使用linux docker环境打包Springboot jar包为docker镜像
  • 原文地址:https://www.cnblogs.com/ccccnzb/p/3567530.html
Copyright © 2011-2022 走看看