zoukankan      html  css  js  c++  java
  • 再看C++(6)操作符重载

    操作符重载看上去很神秘,其实也就是是个函数,只是为了方便人们自然思维的形式,使得用操作符重载这一东东,操作符的格式如下
    operator op(aument-list)
    如加号 operator +(aument-list)
    调用时则是调用这个函数。下面是对于C++Primer 的一个例子设计一个Time的类来进行时间的相加
    class Time  
    {
    private:
        
    int m_hours;
        
    int m_mins;
    public:
        
    void AddHour(int hour);
        
    void AddMin(int minute);
        
    void Reset(int hour,int min);
        Time Sum(
    const Time& t) const;
        Time();
        
    void Show() const;
        
    virtual ~Time();

    }
    ;

    实现
    Time::Time()
    {
        m_hours
    =0;
        m_mins
    =0;
    }


    Time::
    ~Time()
    {

    }

    void Time::AddHour(int hour)
    {
        m_hours
    +=hour;
    }

    void Time::AddMin(int minute)
    {
        m_mins
    +=minute;
        m_hours
    +=m_mins/60;
        m_mins
    %=60;

    }

    void Time::Reset(int hour,int min)
    {
        m_hours
    =hour;
        m_mins
    =min;
    }

    Time Time::Sum(
    const Time& t) const
    {
        Time result;
        result.m_hours
    =m_hours+t.m_hours;
        result.m_mins
    =m_mins+t.m_mins;
        result.m_hours
    +=result.m_mins/60;
        result.m_mins
    %=60;
        
    return result;
    }

    void Time::Show() const
    {
        std::cout 
    << m_hours<<":" <<m_mins<<std::endl;
    }
    现在要实现+操作符重载由于功能和sum是一样的,所以只需要把sum的名字换成operator+就行了,其他完全不用改
    Demo
  • 相关阅读:
    Lookup注解
    解决数据量大,分页查询慢的方案
    一个http的请求分析
    MYSQL
    什么是性能优化
    编码规范随笔
    装饰者模式
    单例模式
    J.U.C并发包(1)
    Java内存模型
  • 原文地址:https://www.cnblogs.com/yukun/p/926648.html
Copyright © 2011-2022 走看看