运算符重载之(),+

来源:互联网 发布:考研c语言用哪本书好 编辑:程序博客网 时间:2024/05/16 16:21

c++运算符重载之()

include <iostream>
using namespace std;
class Time{
    int hour;
    int minute;
    int second;
public:
    Time( int h=0, int m=0, int s=0 )
    {
        operator()( h, m, s );
    }
    //版本0,返回时间表示的秒数
    int operator()()
    {
        return hour*3600+minute*60+second;
    }
    //版本1,设置为整点
    void operator()( int h )
    {
        operator()( h, 0, 0 );
    }
    //版本2,设置整小时和分钟
    void operator()( int h, int m )
    {
        operator()( h, m, 0 );
    }
    //版本3,设置时分秒
    void operator()( int h, int m, int s )
    {
        hour = h;
        minute = m;
        second = s;
    }
    friend ostream& operator<<( ostream& os, const Time& ct )
    {
        os << ct.hour << ';:';;
        if( ct.minute<10 )
            os << ';0';;
        os << ct.minute << ';:';;
        if( ct.second<10 )
            os << ';0';;
        os << ct.second;
        return os;
    }
};
int main()
{
    Time t;
    cout << t << endl;
    t( 9 );//调用版本1
    cout << t << endl;
    t( 7, 30 );//调用版本2
    cout << t << endl;
    t( 0, 10, 20 );//调用版本3
    cout << t << endl;
    cout << t() << endl;//调用版本0
    return 0;

}


c++运算符重载之+

// 作为成员函数,接受一个参数。class add{public:    add():m_n(0){}    add operator+(const add &aR)    {        add a;        a.m_n = m_n * 10 + aR.m_n;        return a;    }    int m_n;};// 作为友元函数,接受两个参数。class complex {public:    complex():m_n(0){}    friend complex operator+(const complex &cL,const complex &cR);    int m_n;};complex operator+(const complex &cL,const complex &cR){    complex c;    c.m_n = cL.m_n + cR.m_n;    return c;}int main(){    add a1,a2,a3;    a1.m_n = 1;    a2.m_n = 2;    a3 = a1 + a2;    complex c1,c2,c3;    c1.m_n = 100;    c2.m_n = 50;    c3=c1+c2;    return 0;}

0 0
原创粉丝点击