myoperload.cpp

来自「编程实例」· C++ 代码 · 共 41 行

CPP
41
字号
#include <iostream>
using namespace std;

//class CAdd;
//CAdd operator+(int a, CAdd &b);

class CAdd
{
	friend CAdd operator+(int a, CAdd &b);
public:
	CAdd(){};
	CAdd(int a){m_Left = a;}
	~CAdd(){};
	CAdd& operator+(int a);
	void ShowIt(){cout<<m_Left<<endl;}
private:
	int m_Left;
};

CAdd& CAdd::operator+(int a)
{
	this->m_Left =this->m_Left + a;
	return *this;
}

CAdd operator+(int a, CAdd &b)
{
	b.m_Left = b.m_Left+a;
	return b;
}


void main()
{
	CAdd obj(4);
	obj=obj+3;
	obj=3+obj;// 这个表达式将会出错,因为,参数类型是不对的。
				//3->m_Left是根本就不存在的
	obj.ShowIt();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?