c – 从父母到孩子的什么类型的演员?
作者:互联网
这个问题是关于应该使用哪个C++ style cast进行此转换.我知道C风格的演员可以达到这个目的.
对于以下类结构:
class Foo {};
class Bar : public Foo {};
说我得到了:Foo * ptr;我想把它投到一个Bar *我应该使用哪种类型的演员?好像我必须使用dynamic_cast:
Used for conversion of polymorphic types
我想避免使用dynamic_cast,因为它是一个运行时转换.
解决方法:
你是对的,dynamic_cast通常最适合这种情况.但是,如果您知道指针实际指向派生类的对象,则可以使用static_cast进行转换.如果你错了并且指针不是派生类,你将得到未定义的行为.
标签:reinterpret-cast,dynamic-cast,c,casting,parent-child 来源: https://codeday.me/bug/20190724/1526912.html