在使用C++编程时,经常要用到不同数据类型之间的类型转换,可能大家对C语言的类型强制转换比较熟悉,就是在表达时前面加一个(强制转换类型)。在C++中仍然可以用C方式的对不同类之间数据类型转换,但是,C++提供了更好的数据类型转换方式,就是利用关键字dynamic_cast来完成对不同类之间数据类型之间的转换。
dynamic_cast的使用格式是:
dynamic_cast T (ptr)
其中,T必须是一个类的的指针或引用,也可以是 void *,参数ptr必须是一个能得到一个指针或者引用的表达式。
如果T是 void * ,那么 ptr 必须是一个指针,而不能是一个引用。
如果转换成功,dynamic_cast T (ptr) 将把ptr转换成你想要转换的类型,如果不成功,返回0(NULL),如果转换到一个引用类型失败,将会触发一个Bad_cast exception异常。
下面的代码是dynamic_cast的实例代码:
// HOW TO MAKE DYNAMIC CASTS
// 这个...[ 查看全文 ]