i++,++iオペレータの再ロード
4527 ワード
#include <iostream>
using namespace std;
class Time
{
public:
Time(){min=0;sec=0;}
Time(int m,int s):min(m),sec(s){}
Time operator++();// ++i;
Time operator++(int);// i++;
void display()
{
cout<<min<<":"<<sec<<endl;
}
private:
int min;//
int sec;//
};
Time Time::operator++()
{
if (++sec>=60)
{
sec-=60;
++min;
}
return *this;
}
Time Time::operator++(int)
{
Time temp(*this);
sec++;
if (sec>=60)
{
sec-=60;
++min;
}
return temp;//
}
int main()
{
Time time1(12,59),time2;
cout<<"time1:";
time1.display();
++time1;
cout<<"time1++:";
time1.display();
time2=time1++;
cout<<"time1++:";
time1.display();
cout<<"time2:";
time2.display();
}
time 1:12:59 time 1+:13:0 time 1+:13:1 time 2:13:0任意のキーを押して続行してください.
Time operator++();//リロード++i; Time operator++(int);//i++を再ロードします.
C++で規定され、後置自増/自減演算子にint型パラメータが追加されます.