什么类型的演员从父母到孩子?

Jon*_*Mee 3 c++ dynamic-cast casting parent-child reinterpret-cast

这个问题是关于应该使用哪种C++样式转换进行此转换.我知道C风格的演员可以达到这个目的.

对于以下class结构:

class Foo {};

class Bar : public Foo {};
Run Code Online (Sandbox Code Playgroud)

说我得到了:Foo* ptr;我想把它投射到Bar*我应该使用哪种类型的演员表?好像我必须dynamic_cast按原样使用:

用于转换多态类型

我想避免,dynamic_cast因为它是一个运行时转换.

Mar*_*som 6

你是dynamic_cast对的,这通常是最适合这种情况的.但是,如果您知道指针实际指向派生类的对象,则可以static_cast用于转换.如果你错了并且指针不是派生类,你将得到未定义的行为.