【博客25】常成员函数返回 "*this" 的情况

内容: 记录下一种,当你的成员函数的返回值为引用时,但是实际返回来的确是常引用的一种 特殊情况。

代码:
在这里插入图片描述
运行结果:
在这里插入图片描述
分析:此时报错,提示不能从const test转换为test&,一开始可能没想明白为什么会这样,明明返回值是*this的,这是因为const常成员函数,此时普通成员函数在我的第一篇博客讲到,会传入一个this指针,指的是本类对象,但是对于常成员函数,传入函数的是const this,所以其实常函数成员的函数内,this指针是const类型的。这个问题应该可以顺便解释下为什么static成员函数不能同时声明为const成员函数,因为const成员需要传入一个constthis,但是static成员函数是不传入this指针的,因为两者不能共存。从语义上分析:const是避免对象成员被改变,但是static是类共有,不是对象私有,那么不绑定到某个对象,对它来说也就不存在本对象成员这个概念了。因此它们不共存。

大三学生一枚,文章均非抄袭或者模仿,均为原创,仅代表个人观点,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈。

猜你喜欢

转载自blog.csdn.net/qq_43684922/article/details/89470463