当前位置: 代码迷 >> 综合 >> C++学习10:单目运算符重载
  详细解决方案

C++学习10:单目运算符重载

热度:102   发布时间:2023-09-28 02:54:10.0

前置自增:返回的是加之后的,用法即:++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;
}

 

  相关解决方案