
This tutorial primarily aim at C++ features and techniques. Rather than being a traditional chapter-by-chapter description, this is a collection of C++ features. It is organized in such a way that you can look up your problem topic easily in the index and go right to that point. C++ is a superset of C. Emphasis has been laid on the concepts of class, objects, inheritance, polymorphism, friend functions, and operator overloading are all geared to make the development and maintenance of applications easy, convenient and economical. It is a useful guide to learning as well as a reference to C++.
It is easy to become focused on the syntax of C++ and to lose sight of how and why you use these techniques to build programs. Because C++ is an object-oriented programming language, it is designed to allow the creation and manipulation of objects from the problem domain. Programming problem can be analyzed in terms of objects and the nature of communication between them. Thus, C++ allows programmers to operate at a higher level of abstraction. This higher level of abstraction allows programmers to develop software in the language of the problem domain rather than in the language of the computer. The key to a good abstraction is deep knowledge of the problem domain. A good abstraction allows users to use an object in a relatively safe and predictable manner. It reduces the learning curve by providing a simple interface described in terms of the user's own vocabulary.