Disabling Dynamic Binding
Once dynamic binding is enabled, an overridden member
function is bound to a pointer or reference based on the
type of the object pointed to.
Dynamic binding is not in effect if an object is used
instead of a pointer or reference to an object.
Dynamic binding is also not in effect if the member
function is qualified with a class name and the scope
resolution operator. In this case, the function bound to the
pointer is the member function defined by the qualifying
class. (pa->account::statement(); ).
For example, if we assign the student object to an account
object and then invoke statement, static binding is in effect
and the account function is called:
   account a = smith;