this与const
在普通非const成员函数中,this是const指针,而在const成员函数中,this是const对象的const指针。
1 class Foo 2 { 3 Foo& get_self1(void) 4 { 5 return *this; // Foo * const this; 6 } 7 8 const Foo& get_self2(void) 9 { 10 return *this; // const Foo * const this; 11 } 12 };
所以往往返回const引用的成员函数需要重载,不然这个函数无法用于某些表达式,
MyFoo.get_self2().set();
这条语句显然是非法的!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步