问几个简单的有关问题
问几个简单的问题?
#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();
myClock++;
myClock.ShowTime();
++myClock;
myClock.ShowTime();
}
问题:
1、 Clock& operator ++(); //前置单目运算符重载
返回值引用有什么好处,和不引用有什么区别?
2、return *this;
*this具体表示什么?
------解决方案--------------------
你的问题都是c/c++中关键问题,比较难以理解,你还说是简单问题 我顶
#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();
myClock++;
myClock.ShowTime();
++myClock;
myClock.ShowTime();
}
问题:
1、 Clock& operator ++(); //前置单目运算符重载
返回值引用有什么好处,和不引用有什么区别?
2、return *this;
*this具体表示什么?
------解决方案--------------------
你的问题都是c/c++中关键问题,比较难以理解,你还说是简单问题 我顶