问题及代码:
#include <iostream>
using namespace std;
class Sample
{
private:
int x;
public:
Sample() {}
Sample (int a)
{
x=a;
}
void disp()
{
cout<<"x="<<x<<endl;
}
Sample operator+(Sample &s); //将运算符重载函数设定为成员函数
};
Sample Sample:: operator+( Sample &s) //实际上,该函数还包括另外一个省略的参数,即 *this
{
return Sample(x+s.x);
}
int main()
{
Sample obj1(20);
Sample obj2(20);
Sample obj3;
obj3=obj1+obj2; //调用重载后的运算符,进行对象的相加
obj3.disp();
return 0;
}
运行结果:
知识点总结:
利用成员函数进行运算符的重载。
重载的二目运算符,前面的变量应该是 this指针。