运算符重载之(),+

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;
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值