类似 VS2013+QT5编译时error C2662: 不能将“this”指针从“const QgsFields”转换为“QgsFields &” : this指针也可以转换

本文探讨了在C++和C语言中将常量转换为非常量的潜在风险,通过示例展示了如何使用C语言风格和C++风格的强制类型转换。文中指出,这样的转换可能导致不可预知的行为,特别是在尝试修改常量对象时。同时,文章提醒开发者应谨慎处理常量,遵循常量不变性的原则。
摘要由CSDN通过智能技术生成

常量转换非常量很危险,常量的设计是为了不改变对象成员值,如果你硬要转换,可以:
(QgsFields &)对象名;//C语言风格的强转
const_cast<引用类型或指针类型>(对象名);//C++风格的强转,去const化
举例如下:
const int a = 1;
int &b = (int&)a; //合法
int &c = a; //不合法
int &d = const_cast<int&>(a);//合法
const_cast<类名&>(*this).GetImages();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值