Designing Reusable Code   «Prev  Next»
Lesson 4 Explore Key Course Features in C++
Objective Explore key course features.

Explore Key Course Features in C++ for the Course

This course begins with a general introduction to polymorphism and then progresses through in-depth discussion and practice of overloading member functions. You will then move on to a module covering the basics of operator overloading.
Finally, you will be introduced to the concepts and practices behind inheritance, including the creation of a class hierarchy using derived classes and virtual functions.
The C++ language has been extended and improved considerably and so much so that it was no longer possible to squeeze detailed explanations of all of C++ in a single course. This tutorial will teach enough of the essential C++ language and Standard Library features to enable you to write your own C++ applications. With the knowledge from this course you should have no difficulty in extending the depth and scope of your C++ expertise. C++ is much more accessible than many people assume and I have assumed no prior programming knowledge.
If you are keen to learn and have an aptitude for thinking logically, getting a grip on C++ will be easier than you might imagine. By developing C++ skills, you will be learning a language that is already used by millions, and that provides the capability for application development in just about any context. The C++ language in this course corresponds to the latest ISO standard, commonly referred to as C++ 14. C++ 14 is a minor extension over the previous standard, C++ 11, so there is very little in the course that is C++ 14 specific. All the examples in the course an be compiled and executed using C++ 11, which conforms to the compilers that are available now.

You cannot just look at C++ as a collection of features since some of the features make no sense in isolation. You can only use the sum of the parts if you are thinking about design, not simply coding. To understand C++ this way, you must understand the problems with C and with programming in general. This course discusses programming problems, why they are problems, and the approach C++ has taken to solve such problems. Thus, the set of features I explain in each module will be based on the way that I see a particular type of problem being solved with the language. In this way I hope to move you from understanding C to the point where the C++ mindset becomes second nature. I will be taking the attitude that you want to build a model in your head that allows you to understand the language all the way down to the most primitive parts. I will convey to you the insights that will enable to think in terms of objects.

Course project

Designing Reusable Code in C++ concludes with an extended course project that allows you to use many of the skills you have learned. You will be expanding a predator simulation game that formed the course project for Building Classes in C++, the previous course in this series. This time around, you will create an ecological simulation using a lifeform class hierarchy.
You do not need to have taken Building Classes in C++ to complete the course project.