此程序为何运行不出来结果请大家有空帮忙解决?运行之后是垃圾值为啥
# include <iostream.h>
class Clock
{
public:
Clock(int NewH=0,int NewM=0,int NewS=0) { int Hour=NewH; int Minute=NewM; int Second=NewS; }
void ShowTime();
void operator++();
void operator++(int);
private:
int Hour,Minute,Second;
};
void Clock::operator++()
{
Second++;
if(Second>=60)
{
Second=Second-60;
Minute++;
if(Minute>=60)
{
Minute=Minute-60;
Hour++;
Hour=Hour%24;
}
}
cout<<"++Clock:";
}
void Clock::operator++(int)
{
Second++;
if(Second>=60)
{
Second=Second-60;
Minute++;
if(Minute>=60)
{
Minute=Minute-60;
Hour++;
Hour=Hour%24;
}
}
cout<<"Clock++:";
}
void Clock::ShowTime()
{
cout<<Hour<<":"<<Minute<<":"<<Second<<endl;
}
void main()
{
Clock myClock(12,20,50);
cout<<"First time output:";
myClock.ShowTime();
myClock++;
myClock.ShowTime();
++myClock;
myClock.ShowTime();
}
[解决办法]
#include <iostream> using namespace std; class Clock{public: //Clock(int NewH=0,int NewM=0,int NewS=0) { int Hour=NewH; int Minute=NewM; int Second=NewS; } Clock(int NewH=0,int NewM=0,int NewS=0) { Hour=NewH; Minute=NewM; Second=NewS; } void ShowTime(); void operator++(); void operator++(int);private: int Hour,Minute,Second;};void Clock::operator++(){ Second++; if(Second>=60) { Second=Second-60; Minute++; if(Minute>=60) { Minute=Minute-60; Hour++; Hour=Hour%24; } } cout<<"++Clock:";}void Clock::operator++(int){ Second++; if(Second>=60) { Second=Second-60; Minute++; if(Minute>=60) { Minute=Minute-60; Hour++; Hour=Hour%24; } } cout<<"Clock++:";}void Clock::ShowTime(){ cout<<Hour<<":"<<Minute<<":"<<Second<<endl;}void main(){ Clock myClock(12,20,50); cout<<"First time output:"; myClock.ShowTime(); myClock++; myClock.ShowTime(); ++myClock; myClock.ShowTime();}
[解决办法]