Summary
In this chapter, we have moved further along our journey with object-oriented programming. We have added additional OO concepts and terms, and have seen how C++ has direct language support for these concepts. We have seen how inheritance in C++ supports generalization and specialization. We have seen how to incrementally build a hierarchy of related classes.
We have seen how to grow inheritance hierarchies using single inheritance, and how to access inherited data members and member functions. We have reviewed access regions to understand which inherited members may be directly accessed, based upon the access regions in which the members are defined in the base class. We know that having a public
base class equates to defining an Is-A relationship, which supports the ideals of generalization and specialization, which is the most commonly used reason for inheritance.
We have detailed the order of constructor and destructor invocations when instances of derived class types...