首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-09-17 
重载赋值运算符,修改返回类型。需要重载运算符,使语句:bool isNonNull array1通过。其中array1是一个cons

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

热点排行