当派生类被虚拟继承时,static_cast不能被下传

时间:2017-03-09 07:03:42

标签: c++ inheritance

我似乎对c ++演员有了不错的理解。 static_cast / dynamic_cast如何工作。我发现很难消化的一个概念是:

如果派生类实际上是继承的,那么C ++不允许使用static_cast进行向下转换的技术原因是什么?比如说:

 class D : virtual public B {
 }

但是,当'D'类实际上是遗传的时候,

 d = static_cast<D*> b; // Invalid

然后在换行符之下,

var dep = new Tracker.Dependency;

虽然我已经阅读了几篇相关的帖子,但似乎没有什么是明确的答案。

0 个答案:

没有答案