运算符重载之圆括号重载
(2011-04-22 10:25:55)
标签:
杂谈 |
分类: c/c |
圆括号运算符也可以重载,重载之后对象就可以使用圆括号运算符了。使用圆括号运算符是不是很象函数?其实,圆括号运算符就叫函数调用运算符。下面是我刚刚写的一个例子,仅供参考。
周末希望大家好好复习,咱们的时间很宝贵!
[code]
#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;
}
[/code]
周末希望大家好好复习,咱们的时间很宝贵!
[code]
#include <iostream>
using namespace std;
class Time{
public:
};
int main()
{
}
[/code]
前一篇:STL中list的使用:
后一篇:C++每天进步一点点(2)