1.赋值操作符重载函数必须声明为成员函数;
2.赋值操作符重载函数的返回值必须是*this,即当前对象的引用。
下面是一个示例代码:
#include <iostream>
using namespace std;
enum Result{
FAIL = 0,
TRUE = 1
};
class Test{
public:
Test(){
value = 0;
success = FAIL;
}
Test(const Test&){}
~Test(){}
Test& operator= (const Test&);//必须是成员函数
int getValue()const{
return value;
}
bool getSuccess()const{
return success;
}
private:
int value;
bool success;
};
Test& Test::operator= (const Test &test){
cout << "此处调用赋值运算符 " << endl;
this->value = test.getValue();
this->success = test.getSuccess();
return *this;//必须返回自身的引用
}
void main(){
Test a,b;
b = a;
}