|
dynamic_cast运算符也适用于reference身上,然而对于一个non-type-safe-cast,其结果不会与施行于指针的情况一样。一个reference不可以像指针那样“把自己设为0便代表了no object”;若将一个reference设为0,会引起一个临时性对象(拥有被参考到的类型)被产生出来,该临时对象的初值为0,这个reference然后被设定为该临时变量的一个别名。 因而,如果reference并不真正是某一种derived class,那么可通过丢出一个bad_cast exception进行处理: simplify_conv_op(const type &rt) 当然,你也可以使用typeid运算符来达到同样的目的: simplify_conv_op(const type &rt) |
