///////////////////////////////////////////////////////////////////// // MT4Q1.cpp #include #include #include class B { public: virtual ~B() {} virtual const char* say() { return "B instance"; } }; class D : public B { virtual const char* say() { return "D instance"; } }; B* f() { return new D; } void main() { std::cout << "\n Creating an instance of D on the C++ heap "; std::cout << "\n and binding to a B reference"; D d; B& b = *f(); std::cout << "\n " << b.say(); delete &b; std::cout << "\n\n"; } Creating an instance of D on the C++ heap and binding to a B reference D instance