赋值运算符与const的问题

crossfire_sli 2010-08-18 05:08:48
比如重载一赋值运算符:

Counter Counter::operator+ (const Counter & rhs)
{
return Counter(itsVal + rhs.GetVal());
}

Counter为类。《21天学通C++》(第5版)是这样写的。但用VS2008编译过程中,这样不可行,在return那行报错,提示“不能将“this”指针从“const Counter”转换为“Counter &” ”。

我的理解是rhs是const Counter类型的,而this是Counter类型的。区别就是一个是const,一个是非const的。故不能通过编译。

期待让我解惑的答案!多谢!


另外,CSDN主页这段时间显示不正常,论坛头像也显示不了。都很长时间了。
...全文
49 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengzhixi 2010-08-18
  • 打赏
  • 举报
回复
既然是成员函数那么就不可能改变this指针的指向。
huayiluo 2010-08-18
  • 打赏
  • 举报
回复
学习。。
taodm 2010-08-18
  • 打赏
  • 举报
回复
换本好点的教材吧。

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧