Suppose we have the following sequence of declarations in C++.
Note that the following would be legal in C++.
class A { };
class B : public A { };
class C : public A { };
class D : public B, C { };
Why would C++ prohibit the following statement?
B *b = new D();
A *a = new D();