博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++中的const_cast
阅读量:6146 次
发布时间:2019-06-21

本文共 844 字,大约阅读时间需要 2 分钟。

开发环境 Qt Creator 4.8.2

编译器版本 MinGw 32-bit
const_cast
用法:

const_cast
(expression)

说明:

该运算符用来修改类型的const或volatile属性。除了const 或volatile修饰之外, type_id和expression的类型是一样的。

常量指针被转化成非常量指针,并且仍然指向原来的对象;常量引用被转换成非常量引用,并且仍然指向原来的对象;常量对象被转换成非常量对象。

如下代码在Qt开发环境中报错

template 
inline elemType* begin_(const vector
&vec){ return vec.empty() ? 0 : &vec[0];}
error: cannot initialize return object of type 'int *' with an rvalue of type 'const __gnu_cxx::__alloc_traits
>::value_type *' (aka 'const int *')

将代码修改后如下

/* * 获取vector的首地址*/template 
inline elemType* begin_(const vector
&vec){ return vec.empty() ? 0 : const_cast
(&vec[0]);}

参考资料:

1 【C++专题】static_cast, dynamic_cast, const_cast探讨

转载于:https://www.cnblogs.com/Manual-Linux/p/10990893.html

你可能感兴趣的文章
浅谈OSI七层模型
查看>>
Webpack 2 中一些常见的优化措施
查看>>
移动端响应式
查看>>
python实现牛顿法求解求解最小值(包括拟牛顿法)【最优化课程笔记】
查看>>
js中var、let、const的区别
查看>>
腾讯云加入LoRa联盟成为发起成员,加速推动物联网到智联网的进化
查看>>
从Python2到Python3:超百万行代码迁移实践
查看>>
Windows Server已可安装Docker,Azure开始支持Mesosphere
查看>>
简洁优雅地实现夜间模式
查看>>
react学习总结
查看>>
微软正式发布PowerShell Core 6.0
查看>>
Amazon发布新的会话管理器
查看>>
InfoQ趋势报告:DevOps 和云计算
查看>>
舍弃Python,为什么知乎选用Go重构推荐系统?
查看>>
在soapui上踩过的坑
查看>>
MySQL的字符集和字符编码笔记
查看>>
ntpd同步时间
查看>>
must implement java.io.Serializable hessian
查看>>
Microsoft Licenses Flash Lite for Windows Mobile Users
查看>>
HDOJ 2020 绝对值排序
查看>>