Parts 1 and 2 of this book introduced you to concepts and features of the C++ programming language that allow the procedural programming paradigm and the object-oriented programming paradigm. C++ provides functions and control flow statements that allow you to break your programs down into reusable blocks and it provides classes that allow you to encapsulate your data and bundle it with methods that act on that data. C++ also supports a third programming paradigm, generic programming.
Generic programming is conceptually more complicated than the procedural and object-oriented programming paradigms. You can think of generic programming in C++ as programming with types. You’ve seen examples of this in the previous ...