| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2153 人关注过本帖
标题:关于C++中的自增/自减运算符重载的问题!
只看楼主 加入收藏
寻找南方
Rank: 2
等 级:论坛游民
帖 子:57
专家分:75
注 册:2009-10-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
关于C++中的自增/自减运算符重载的问题!
#include <iostream.h>
class Clock
{
public:
Clock(int newHour = 0,int newMinute = 0,int newsSecond = 0);
void showTime( );
Clock operator ++( );
Clock operator ++( int );
private:
void incOneSecond( );
int hour,minute,second;
};
void Clock::incOneSecond( )
{
second++;
if(second>=60)
{
second=second-60;
minute++;
if(minute>=60)
{
minute = minute - 60;
hour++;
hour=hour%24;
}
}
}
Clock::Clock(int newHour , int newMinute, int newSecond)
{
if(0<=newHour&&newHour<24&&0<=newMinute&&newMinute<60&&0<=newSecond&&newSecond<60)
{
hour = newHour;
minute = newMinute;
second = newSecond;
}
else   cout<<”time error!”;
}
void Clock::showTime( )
{
cout<<hour<<”:”<<minute<<”:”<<second<<endl;
}
Clock Clock::operator++( ) //前置
{
incOneSecond( );
cout<<”++Clock:”;
return *this;
}
Clock Clock::operator++( int ) //后置
{ Clock temp(*this);
incOneSecond( );
cout<<”Clock++:”;
return temp;
}
void main( )
{
Clock myClock(23,59,59);
cout<<”first time output:”;
myClock.showTime();
myClock++.showTime();
(++myClock).showtime();
}


这是我在网上复制过来的一个关于自增函数。
上面的这个函数只是按照一定的规则进行了自增自减的运用。而我想知道的是关于后置函数中的那个int的应用。或者直接说就是关于自增自减运算符重载函数对于前后置的实现原理??????

搜索更多相关主题的帖子: 重载 运算符 
2010-03-12 01:14
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:14 
重载后置自增(自减)运算符时,多了一个int型的参数,其目的是为了与前置自增运算符重载函数区别,此外没有任何作用,在定义函数时也不必使用此参数,因此可以省略参数名。编译系统在遇到重载后置自增运算符时,会自动调用此函数。

★★★★★为人民服务★★★★★
2010-03-12 07:34
寻找南方
Rank: 2
等 级:论坛游民
帖 子:57
专家分:75
注 册:2009-10-21
收藏
得分:0 
回复 2楼 cnfarer
首先谢谢你的回答!但我还是要告诉你,你的回答还没有老谭的细!我是没有看懂老谭的才来问,这个重载函数是怎么实现的。我是很想知道,所以在刨根问底,看看有没有人知道!!谢谢!!

我一路向前~~~~~~~~~~~~~
2010-03-12 12:24
快速回复:关于C++中的自增/自减运算符重载的问题!
数据加载中...
 
   



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

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