const_cast可双向转换_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > const_cast可双向转换

const_cast可双向转换

 2012/1/11 10:02:43  soartomato  程序员俱乐部  我要评论(0)
  • 摘要:平时用这个关键字多数是在需要去掉常量属性的场合,比如constintc=10;int*v=const_cast<int*>(&c);*v=11;但是最近的一个项目中正好需要反向的转换,第三方的一个参数需要的形式为:func(intargc,constchar*argv[]);公司公用组件开发的程序能提供的第二个参数为char**,直接使用(constchar**)char**进行转换,编译器报错,尝试了n种方法,包括解引用,引用转换等,总是不行
  • 标签:

平时用这个关键字多数是在需要去掉常量属性的场合,比如

const int c = 10; int * v = const_cast<int *>(&c); *v = 11;

但是最近的一个项目中正好需要反向的转换,第三方的一个参数需要的形式为:func(int argc, const char* argv[]);公司公用组件开发的程序能提供的第二个参数为char**, 直接使用(const char**)char**进行转换,编译器报错,尝试了n种方法,包括解引用,引用转换等,总是不行,偶然的情况下尝试使用const_cast<const char **> (argv)竟然编译通过了,而且没有问题。原来的知识是const_cast只是去掉const属性,现在来看也是可以为一般常量添加const属性。这一点在我看到的材料里到目前为止均没有谈到这一点,算是对自己敢于突破旧思维的一个肯定,以后继续坚持。敢于尝试非常重要,一手的知识来源于实践!

  • 相关文章
发表评论
用户名: 匿名