其他分享
首页 > 其他分享> > c – 从父母到孩子的什么类型的演员?

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