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;
}
// 作为成员函数,接受一个参数。
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;
}