• 再看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
  • 相关阅读:
    Ionic开发Hybrid App问题总结
    >>> 主页链接
    微信小程序之WebSocket
    Keepalived+LVS+nginx搭建nginx高可用集群
    centos7 dns(bind)安装配置
    samba安装配置
    redis数据备份还原
    gitlab部署
    gitlab数据迁移
    kubeadm部署一个Kubernetes集群
  • 原文地址:https://www.cnblogs.com/yukun/p/926648.html
Copyright © 2020-2023  润新知