///////////////////////////////////////////////////////////////////// // MT4Q9.cpp #include class B { public: virtual ~B() {} virtual void say() { std::cout << "\n I am a " << typeid(*this).name() << " instance"; } }; class D : public B { }; B* Creator() { return new D; } void main() { B* pB = Creator(); pB->say(); std::cout << "\n\n"; }