当 static_cast 从派生类到基类时会发生什么?

Zac*_*ary 5 c++ constructor static-cast

在阅读 C++ 标准时,我读到这static_cast是一种直接初始化(C++ 标准 8.5/15)。
我认为这意味着在 a 期间static_cast,调用相应的重载构造函数。
例如,有一个类型 B 和从 B 派生的类型 D,以及一个对象D d。那么表达式static_cast<B>(d)就是static_cast表达式。

作为标准手段,该static_cast表达式是直接初始化。这是否意味着这将调用 type 的构造函数B并返回 type 的新构造对象B


编辑
另一个问题是B & b = dor怎么样B b = d?这两个语句是否涉及 的构造函数B

Pet*_*ker 1

是的,static_cast对象类型的转换(即,不是转换为引用或指针类型)将使用适当的构造函数来创建临时对象。