CS202   4- ‹#›
nWe can force application programs to always use pointers to base class objects instead of using pointers to derived class objects or using objects directly by making the overridden member functions protected or private in the derived classes.
nThis is a way to force applications to adhere to the defined interface provided by the base class and to help ensure that dynamic binding will be used.
nIt causes compilation errors to result if the application attempts to use static binding:
n    student* ps = &smith;
n    ps->statement();  //illegal access-protected member
n    smith.statement(); //illegal access-protected member
Making sure pointers are used