【C++】基础语法:运算符重载2:前置++与后置++

前言

由于篇幅原因 上篇文章在介绍完运算符重载中的赋值运算符重载后 已经够长了 所以新开一篇文章来介绍前置++与后置++

面对前置++与后置++的情况类似 会发生冲突 所以进行特殊处理 以区分二者

Date类创建

class Date
{
public:
	Date(int year = 1, int month = 1, int day = 1);
	
private:
	int _year;
	int _month;
	int _day;
};

前置++

 // 前置++:返回+1之后的结果
 // 注意:this指向的对象函数结束后不会销毁,故以引用方式返回提高效率
 Date& operator++()
 {
 	_day += 1;
 	return *this;
 }

后置++

// 注意:后置++是先使用后+1,因此需要返回+1之前的旧值,故需在实现时需要先将this保存一份,然后给this + 1   
Date operator++(int)
{
	Date temp(*this);
	_day += 1;
	return temp;
}

C++规定:后置++重载时多增加一个int类型的参数,但调用函数时该参数不用传递,编译器自动传递

而temp是临时对象,因此只能以值的方式返回,不能返回引用

结语

对于运算符重载的简单介绍到这里就结束了
我们下次见~~

你可能感兴趣的:(C++知识点,c++,java,算法)