在C++里面,dynamic_cast 通常用于横向转换,而不是向上或者向下的转换。
这个常常用于检查某个实例,是否实现了某个接口类,那么就把这个实例,用dynamic_cast来转换成这个接口类的实例。
如果成功,那就得到了调用方;如果不成功,会返回NULL.
一般不用引用来作为转换的接收方,因为引用的话,如果失败,是抛出 bad_cast的异常,因为没有空引用。
在C++里面,dynamic_cast 通常用于横向转换,而不是向上或者向下的转换。
这个常常用于检查某个实例,是否实现了某个接口类,那么就把这个实例,用dynamic_cast来转换成这个接口类的实例。
如果成功,那就得到了调用方;如果不成功,会返回NULL.
一般不用引用来作为转换的接收方,因为引用的话,如果失败,是抛出 bad_cast的异常,因为没有空引用。