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

本文详细解析了C++中前置自增和后置自增的区别及使用场景,通过具体代码示例展示了如何重载这两种运算符,以实现自定义类中的自增操作。了解这些内容对于深入理解C++运算符重载机制至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值