重载运算符operater用法

#include 
using namespace std;
class CBook 
{
protected:
	int m_iPage;
public:
	CBook(int iPage) 
	{
		m_iPage = iPage;
	}
	/*operator类型名();
	operator是需要重载的运算符,整个语句没有返回类型,因为
	类型名就代表了它的返回类型,重载运算符将对象装换成类型名规定的类型
	装换时的形式就想强制转换一样。如果没有重载运算符定义,
	直接用强制转换编译器无法通过编译。
	*/
	CBook operator+(CBook b)//运算符重载实现类对象的加法
	{
		return CBook(m_iPage+b.m_iPage);
	}
	void display() 
	{
		cout << m_iPage << endl;
	}
};
void main() 
{
	CBook bk1(10);
	CBook bk2(20);
	CBook tmp(0);
	tmp = bk1 + bk2;//两个对象相加复制给tmp
	tmp.display();//显示
}

你可能感兴趣的:(C++学习)