读书人

满载赋值运算符修改返回类型

发布时间: 2012-09-17 12:06:51 作者: rapoo

重载赋值运算符,修改返回类型。
需要重载运算符,使语句: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()类型转换符而不是赋值运算符

读书人网 >C++

热点推荐