第1个回答 推荐于2016-10-16
重载运算符时用不用"&"都无所谓,可以试试下面这个程序
#include<iostream>
using namespace std;
class Clock
{
public:
Clock(int NewH=0,int NewM=0,int NewS=0);
void ShowTime();
Clock operator ++();
Clock operator ++(int);
private:
int Hour,Minute,Second;
};
Clock::Clock(int NewH,int NewM,int NewS)
{
if(0<=NewH && NewH<24 && 0<=NewM && NewM<60 && 0<=NewS && NewS<60)
{
Hour=NewH;
Minute=NewM;
Second=NewS;
}
else
cout<<"time error!"<<endl;
}
void Clock::ShowTime(){cout<<Hour<<":"<<Minute<<":"<<Second<<endl;}
Clock Clock::operator ++ () //前置重载定义
{
Second ++;
if (Second>=60)
{
Second=Second-60;
Minute++;
if (Minute>=60)
{
Minute=Minute-60;
Hour++;
Hour=Hour%24;
}
}
return *this;
}
Clock Clock::operator ++(int)//后置重载定义
{
Clock old=*this;
++(*this);
return old;
}
int main()
{
Clock myClock(23,59,59);
cout<<"First time output:";
myClock.ShowTime();
cout<<"Show myClock++:";
(myClock++).ShowTime();
cout<<"Show ++myClock:";
(++myClock).ShowTime();
return 0;
}
看一看重载++ 的部分!希望对你有帮助~!天天开心本回答被提问者采纳
第2个回答 2008-12-28
在类外对这个函数进行实例化
也就是在类外把这个函数的内容写出来
几个(类名+&)才知道这个函数是属于这个类的
第3个回答 2019-03-20
重载运算符时用不用"&"都无所谓,可以试试下面这个程序
#include<iostream>
using
namespace
std;
class
Clock
{
public:
Clock(int
NewH=0,int
NewM=0,int
NewS=0);
void
ShowTime();
Clock
operator
++();
Clock
operator
++(int);
private:
int
Hour,Minute,Second;
};
Clock::Clock(int
NewH,int
NewM,int
NewS)
{
if(0<=NewH
&&
NewH<24
&&
0<=NewM
&&
NewM<60
&&
0<=NewS
&&
NewS<60)
{
Hour=NewH;
Minute=NewM;
Second=NewS;
}
else
cout<<"time
error!"<<endl;
}
void
Clock::ShowTime(){cout<<Hour<<":"<<Minute<<":"<<Second<<endl;}
Clock
Clock::operator
++
()
//前置重载定义
{
Second
++;
if
(Second>=60)
{
Second=Second-60;
Minute++;
if
(Minute>=60)
{
Minute=Minute-60;
Hour++;
Hour=Hour%24;
}
}
return
*this;
}
Clock
Clock::operator
++(int)//后置重载定义
{
Clock
old=*this;
++(*this);
return
old;
}
int
main()
{
Clock
myClock(23,59,59);
cout<<"First
time
output:";
myClock.ShowTime();
cout<<"Show
myClock++:";
(myClock++).ShowTime();
cout<<"Show
++myClock:";
(++myClock).ShowTime();
return
0;
}
看一看重载++
的部分!希望对你有帮助~!天天开心