| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 604 人关注过本帖
标题:小问题请教:
只看楼主 加入收藏
marenshi
Rank: 2
等 级:论坛游民
帖 子:23
专家分:17
注 册:2009-10-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
小问题请教:
Time Time::operator ++(int)
{Time t(*this);//?
sec++;
if(sec>=60)
{sec-=60;
++minute;
}
return t;
}
教材上的例子,这段没注释,高手指教。谢谢!
搜索更多相关主题的帖子: 教材 return minute 
2010-05-28 16:48
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:0 
程序代码:
Time Time::operator ++(int)
{Time t(*this);    //个人推测应该是:创建一个 Time类的对象 t 并且传当前对象(注意,不是t)给Time类的构造函数,
sec++;
if(sec>=60)
{sec-=60;
++minute;
}
return t;
}
应该是这样,如果有错,楼下请更正
2010-05-28 17:06
ljt
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:191
专家分:431
注 册:2009-4-6
收藏
得分:3 
#include <iostream.h>
class A
{
    int money;
public:
    A(int m){money=m;cout<<money<<endl;}
    A(A&){cout<<"拷贝构造函数"<<endl;}
    void boss()
    {
        A a(*this);
        cout<<"dfdfs";
    }
};
void main()
{
    A b(5);
    b.boss();
}
你运行一下,看下结果就知道了
2010-05-28 18:18
刚开始吧
该用户已被删除
收藏
得分:5 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-28 19:27
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:3 
看不懂,知道是个重载运算符。但什么t,t和sec,min也没什联系啊。

[ 本帖最后由 gaoce227 于 2010-5-28 19:32 编辑 ]
2010-05-28 19:29
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
Time Time::operator ++(int)//定义运算符重载函数  operator和++间应该没有空格吧?
{Time t(*this);//this是指向调用++运算符函数对象的指针,*this是调用++运算符函数的对象,用*this初始化一个新的Time对象。
sec++;//秒加1
if(sec>=60)
{sec-=60;//如果秒数大于或等于60,那么就sec=sec-60
++minute;//因为秒大于60,多以分钟就该加1分钟
}
return t;
}
2010-05-28 19:43
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
收藏
得分:3 
以下是引用marenshi在2010-5-28 16:48:14的发言:

Time Time::operator ++(int)
{Time temp(*this);//定义临时对象,this指针隐含着:(*this).sec,(*this).->min.分别完成++后置运算,即完
sec++;            //成临时对象temp的后置++运算。
if(sec>=60)
{sec-=60;
++minute;
}
return temp;
}
教材上的例子,这段没注释,高手指教。谢谢!
老兄看书好仔细,但要结合前面看。
2010-05-28 19:51
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:3 
回复 2楼 bccn250
你的猜测是正确的。
就是这个意思了。

南国利剑
2010-05-30 01:15
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:3 
以下是引用bccn250在2010-5-28 17:06:42的发言:

Time Time::operator ++(int)
{Time t(*this);    //个人推测应该是:创建一个 Time类的对象 t 并且传当前对象(注意,不是t)给Time类的构造函数,
sec++;
if(sec>=60)
{sec-=60;
++minute;
}
return t;
}应该是这样,如果有错,楼下请更正

南国利剑
2010-05-30 01:15
marenshi
Rank: 2
等 级:论坛游民
帖 子:23
专家分:17
注 册:2009-10-31
收藏
得分:0 
谢谢各位:我明白了!
2010-05-30 20:03
快速回复:小问题请教:
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025777 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved