C++核心编程 14(三)递增(减)运算符重载

C++核心编程 14(三)递增(减)运算符重载,第1张

C++核心编程 14(三)递增(减)运算符重载

目录

递增运算符重载  前置++的效率略高于后置++,原因是前置不会调用拷贝构造

递减运算符重载


++和--对于默认数据类型编译器都知道该如何递增递减,但是对于自定义数据类型,编译器不知道该如何运算,于是需要用到重载。

递增运算符重载

        1.前置++

class MyInter
{
public:
	MyInter()
	{
		this->m_Num = 0;
	}
	//重置前置++
	MyInter& operator++()
	{
		//先++
		m_Num++;
		//后返回
		return *this;
	}
private:
	int m_Num;
};

        2.后置++

class MyInter
{
public:
	friend ostream& operator<<(ostream& cout, MyInter& myInt);
	MyInter()
	{
		this->m_Num = 0;
	}
	//重置后置++
	MyInter operator++(int)
	{
		//先返回
		MyInter temp=*this;
		//后++
		this->m_Num++;
		return temp;
	}
private:
	int m_Num;
};

递减运算符重载

        1.前置--

class MyInter
{
public:
	MyInter()
	{
		this->m_Num = 0;
	}
	//重置前置--
	MyInter& operator--()
	{
		//先--
		m_Num--;
		//后返回
		return *this;
	}
private:
	int m_Num;
};

        2.后置--

class MyInter
{
public:
	MyInter()
	{
		this->m_Num = 0;
	}
	//重置后置--
	MyInter operator--(int)
	{
		//先返回
		MyInter temp=*this;
		//后--
		this->m_Num--;
		return temp;
	}
private:
	int m_Num;
};

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5718756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存