What I want the last line to do is call the foo() that is in class D. It compiles but crashes every time. What am I doing wrong?Code:class A{ public: virtual foo() = 0; }; class B{}; class C : public A, public B{ public: virtual foo(); }; class D : public C{ public: foo(); }; D *d = new D; A *a = (A*)d; a->foo(); //crashes the program