cannot convert 'this' pointer from 'const class A' to 'class A &'

本文详细解析了ErrorC2662错误的原因,并提供了一种解决办法。通过修改需要调用的非const接口为const,或者在内部移除const修饰符,可以解决此类编译错误。文中还提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Error C2662, cannot convert ‘this’ pointer from ‘const class ’ to ‘class &’的解决办法

 

 

解决方法帖子:

http://www.cnblogs.com/clever101/archive/2011/09/21/2184403.html

 

分析原因帖子:

http://blog.sina.com.cn/s/blog_60e96a410100n6ks.html

 

 

解决方法:

原因在于带const修饰符的接口会把this指针转化为为const this类型。网上一种解决办法是,把需要调用的非const接口都改为const,如上例的GetX、GetY和GetZ函数改为:

 

     float GetX()  const{ return _x;}  
     float GetY()  const{ return _y;}  
     float GetZ()  const{ return _z;} 

 

我想到的一种办法是可以直接在内部将const修饰符去掉,具体如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值