1.1.1. (C++ 语言命令详解(第二版))
const_cast 将const类型变量,转换为非const .将volatile转换为非volatile
dynamic_cast (RTTI支持)如果实际类型与目的类型不一致(一致是指,目的对象与指针的实际对
象一样,或者目的对象是指针对象的父对象),则返回NULL (0)
dynamic_cast <type*> expr //expr必须含一虚函数,否则编译出错
// 有些编译器须打开标志才能用,如vc /GR
reinterpret_cast 提示编译器不要进行值的转换,只是把地址互相复制
static_cast 相当与不用,编译器进行值的转换,指针转换只能从一种类型到void*,反过来不行,
此4条是扩展ansi特征,在早期c++版本中不支持
属于模版
RTTI原理:在vtable(虚函数表)中放一个指向typeinfo结构体的指针
C++语言类型转换命令及RTTI原理
博客介绍了C++语言的类型转换命令,包括const_cast、dynamic_cast、reinterpret_cast和static_cast的功能及使用注意事项,指出这些是扩展ansi特征,早期版本不支持。还提到了RTTI原理,即在虚函数表中放一个指向typeinfo结构体的指针。
507

被折叠的 条评论
为什么被折叠?



