读书人

const成员函数回来this的小疑问

发布时间: 2012-08-11 20:50:30 作者: rapoo

const成员函数返回this的小疑问!
C++ primer中讲到:不能从const成员函数中返回指向类对象的普通引用,const成员函数只能返回*this作为一个const引用。如类Em中函数:

C/C++ code
Em &func(Em &em)const{     ......    return *this;}
const的作用是在此函数中不能改变em的成员,而非声明此函数的返回类型是否有const修饰,此函数返回的是一个普通引用,那为什么说const成员函数返回的是const引用!
应该是这种函数返回的才是const引用。
C/C++ code
const Em &func(Em &em)const{     ......    return *this;}


[解决办法]
const 修饰的是 this指针.

const 成员函数的this指针类型是 const Em *

非const 成员函数的 this指针类型是 Em*


=====
非标准说法.但是通用.
[解决办法]
this本来就是个参数

读书人网 >C++

热点推荐