C++的数据类型转换关键字dynamic_cast
在使用C++编程时,经常要用到不同数据类型之间的类型转换,可能大家对C语言的类型强制转换比较熟悉,就是在表达时前面加一个“(强制转换类型)”。在C++中仍然可以用C方式的对不同类之间数据类型转换,但是,C++提供了更好的数据类型转换方式,就是利用关键字“dynamic_cast”来完成对不同类之间数据类型之间的转换。c;X7L@ a_P-X4}-c3[0QnJ D F}
dynamic_cast的使用格式是:i \,z+a6a%x0Z6c
b#J!\#N9{a,I`
dynamic_cast (ptr)6K4{J/|g5@!|8q
其中,T必须是一个类的的指针或引用,也可以是 void *,参数ptr必须是一个能得到一个指针或者引用的表达式。
如果T是 void * ,那么 ptr 必须是一个指针,而不能是一个引用。X)Y~jR%qi^%_
如果转换成功,dynamic_cast (ptr) 将把ptr转换成你想要转换的类型,如果不成功,返回0(NULL),如果转换到一个引用类型失败,将会触发一个“Bad_cast exception”异常。+h \ B`Y SC!TwCtU
GbBX {OYu;A sq
下面的代码是dynamic_cast的实例代码: