前置自增:返回的是加之后的,用法即:++a
后置自增:返回的是加之前的,用法即:a++
#include<iostream>
using namespace std;
class Time
{public:
Time(){minute=0;sec=0;}
Time(int m,int s):minute(m),sec(s){}
Time operator++(); // 声明前置自增运算符“++”重载函数
//Time operator++(int); //声明后置自增运算符“++”重载函数
void display(){cout<<minute<<":"<<sec<<endl;}
private:
int minute;
int sec;
};
Time Time::operator++() //定义前置自增运算符“++”重载函数
{
++sec;
//if (++sec>=60)
//{
//sec-=60;
//++minute;
//}
return *this; //返回自加后的当前对象
}
//Time Time::operator++(int)
//{
//Time temp(*this);
//sec++;
//if (sec >= 60)
//{
//sec-=60;
//++minute;
//}
//return temp; // 返回自增前的对象
//}
int main()
{
Time time1(34,00),time2;
time1++;
time1.display();
time2 = ++time1 ;
time2.display();
system("pause");
return 0;
}
#include<iostream>
using namespace std;
class Time
{public:
Time(){minute=0;sec=0;}
Time(int m,int s):minute(m),sec(s){}
Time operator++(); // 声明前置自增运算符“++”重载函数
Time operator++(int); //声明后置自增运算符“++”重载函数
void display(){cout<<minute<<":"<<sec<<endl;}
private:
int minute;
int sec;
};
Time Time::operator++() //定义前置自增运算符“++”重载函数即:++a
{if (++sec >= 60)
{sec-=60;++minute;}
return *this; //返回自加后的当前对象
}
Time Time::operator++(int) //定义后置自增运算符“++”重载函数即:a++
{Time temp(*this);
sec++;
if (sec >= 60)
{sec-=60;++minute;}
return temp; // 返回自增前的对象
}
int main()
{
Time time1(34,03),time2;
cout << "time1: ";
time1.display();
++time1; //单独的++time1;和time1++都是取加之后的值
cout << "++time1: ";
time1.display();
time1++;
cout << "time1++: ";
time1.display();
time2 = time1 ++; //time2为加之前的time1的值
cout << "time1++: ";
time1.display();
cout << "time2= time1 ++: ";
time2.display();
time2 = ++time1; //time2为加之后的time1的值
cout << "++time1: ";
time1.display();
cout << "time2= ++time1: ";
time2.display();
system("pause");
return 0;
}