读书人

新手多谢大家来帮忙

发布时间: 2012-02-06 15:52:44 作者: rapoo

新手求助,谢谢大家来帮忙
class Array
{
public:
const Array &operator=(const Array &);
}
const Array &Array::operator=(const Array &right)
{
语句块
return *this;
}

=重载原型前的const是什么意思
即:const Array &operator=(const Array &);
的第一个const的什么意思

[解决办法]
意思是这个函数的返回值是个const,不可以被修改
类似f()=val;这样的表达式将不能通过编译
[解决办法]
在:

class Array
{
public:
const Array &operator=(const Array &);
}
const Array &Array::operator=(const Array &right)
{
语句块
return *this;
}

中,第一个const的说明该重载运算符函数将返回一个常型的Array类型的引用,例如类似:

Array _a;
const Array& _ar = _a;//返回一个常型的Array类型的引用!

则不能用_ar修改对改对象_a!


[解决办法]
表明谁也不能通过这个引用来修改返回值

读书人网 >C++

热点推荐