文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>常见错误40: 旧式强制类型转换----读书笔记《c++ gotchas》...

常见错误40: 旧式强制类型转换----读书笔记《c++ gotchas》...

时间:2010-08-12  来源:lzueclipse

不要使用旧式强制类型转换。

它们的用法过于简单随意。

考虑这样的头文件:

//emp.h

//…

const Person *getNextEmployee();

//…

假设该头文件在整个工程中都被包含:

#include “emp.h”

//…

Person *victim = (Person *)getNextEmployee();

dealWith(victim);

//…

任何将常量性抹除的强制类型转换都有潜在的风险。

做一些修改:

//emp.h

//…

const Employee *getNextEmployee();

//…

上面那个强制转换仍然合法,但是我们最初的意思是仅仅去掉常量性,现在呢?而且我们不能保证

当头文件修改后,程序员会去查看所有调用getNextEmployee()的调用部分代码。

而若是使用新式强制类型转换,编译器就能发现这个错误:

#include “emp.h”

//…

Person *victim = const_cast<Person *> (getNextEmployee());

dealWith(victim);

const_cast的作用仅仅局限于去掉常量性。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载