Problem
1. Explain how assignments can be made within a class hierarchy and the role of casting in a class hierarchy. What is strong typing? Why is it an important language feature?
2. If C++ encounters a member function call of the following form: base_class_ptr->function_name() where base_class_ptr is a pointer to a base class that points to an object whose type is a derived class, what is necessary for this statement to compile? During run time, will function function_name from the class that is the type of base_class_ptr always be invoked, or is it possible that a different function function_name will be invoked? Explain your answer.