const成员函数回来this的小疑问
const成员函数返回this的小疑问!C++ primer中讲到:不能从const成员函数中返回指向类对象的普通引用,const
const成员函数返回this的小疑问!
C++ primer中讲到:不能从const成员函数中返回指向类对象的普通引用,const成员函数只能返回*this作为一个const引用。如类Em中函数:
C/C++ codeEm &func(Em &em)const{ ...... return *this;}
const的作用是在此函数中不能改变em的成员,而非声明此函数的返回类型是否有const修饰,此函数返回的是一个普通引用,那为什么说const成员函数返回的是const引用!
应该是这种函数返回的才是const引用。
C/C++ codeconst Em &func(Em &em)const{ ...... return *this;}
[解决办法]const 修饰的是 this指针.
const 成员函数的this指针类型是 const Em *
非const 成员函数的 this指针类型是 Em*
=====
非标准说法.但是通用.
[解决办法]this本来就是个参数