重载赋值运算符,修改返回类型。
需要重载运算符,使语句:bool isNonNull = array1;通过。其中array1是一个const的类对象,定义:const ScopedArray<T> array1。ScopedArray的private 变量就一个: T* array。
我打算重载运算符,返回一个bool返回值:
- C/C++ code
template<typename T>bool ScopedArray<T>::operator=(const ScopedArray& sSource) { return (sSource.array != 0);}同时,还需要规定不允许class间的赋值,所以我将copy构造函数和"="的常规重载声明放在private里:
- C/C++ code
private: T* array; ScopedArray(const ScopedArray&); ScopedArray& operator=(const ScopedArray&);
但是报错说不能这样定义。请问需要如何修改啊?
[解决办法]
重载bool()类型转换符而不是赋值运算符