【发布时间】:2015-07-16 09:50:52
【问题描述】:
用类名定义的操作符有什么区别:
class RefObj {
public:
RefObj &operator=(const RefObj &) { return *this; }
private:
int m_Counter = 0;
};
还有一个带有 void 的运算符:
template<class T> class SmartPtr {
public:
void operator=(T* pointer) { m_SmartPtr = pointer; }
private:
T* m_SmartPtr;
}
什么时候应该使用第一个,什么时候应该使用第二个?
【问题讨论】: