加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

运算符重载之圆括号重载

(2011-04-22 10:25:55)
标签:

杂谈

分类: c/c
圆括号运算符也可以重载,重载之后对象就可以使用圆括号运算符了。使用圆括号运算符是不是很象函数?其实,圆括号运算符就叫函数调用运算符。下面是我刚刚写的一个例子,仅供参考。
周末希望大家好好复习,咱们的时间很宝贵!
[code]
&#35;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]

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有