Previous | Beginning | Next
Notes
C++ offers a great range of expression that is sometimes obscured by approaching it from a single viewpoint, such as lowest common denomination OO or as a better C. Included in its features is direct support for classic object-oriented inheritance, however in common with many other languages the meaning of such inheritance is beyond the scope of the language. In conventional best practice, an inheritance relationship is taken to mean that there is a substitutable relationship between derived and base classes. Such extension of a core working language through patterns of usage, in effect defining a broader level of dialogue in a system, is common in any discipline. The principles and features which govern the idiomatic practices of substitutability in C++ go beyond public inheritance, and include overloading, conversions, generic programming, and mutability. Understanding the basic principles and how C++ can support them can make systems more expressive and development more effective. |