C++ was originally an extension to C, also known as "C with Objects." It enhances C by adding several higher-level features such as strong typing, data abstraction, references, operator and function overloading, and considerable support for object-oriented programming.
C++ retains the key features that have made C such a popular and successful language: speed, efficiency, and a wide range of expressiveness that allows programming at many levels, from the lowest (such as direct operating system calls or bitwise operations) to the highest level (manipulating large complex objects or graphs of objects).
A fundamental design decision was made at the beginning for C++: Any features added to C++ should not cause a run-time penalty on C code that does not use them.[1] Certainly, there are added burdens on the compiler, and some features have a run-time cost if they are used, but a C program that is compiled by a C++ compiler should run just as fast as it would if compiled by a C compiler.
[1] Unfortunately, exception handling broke this rule and does cause a bit of overhead if enabled. This is why many libraries still do not use exceptions.
Part I: Introduction to C++ and Qt 4
C++ Introduction
Classes
Introduction to Qt
Lists
Functions
Inheritance and Polymorphism
Part II: Higher-Level Programming
Libraries
Introduction to Design Patterns
QObject
Generics and Containers
Qt GUI Widgets
Concurrency
Validation and Regular Expressions
Parsing XML
Meta Objects, Properties, and Reflective Programming
More Design Patterns
Models and Views
Qt SQL Classes
Part III: C++ Language Reference
Types and Expressions
Scope and Storage Class
Statements and Control Structures
Memory Access
Chapter Summary
Inheritance in Detail
Miscellaneous Topics
Part IV: Programming Assignments
MP3 Jukebox Assignments
Part V: Appendices
MP3 Jukebox Assignments
Bibliography
MP3 Jukebox Assignments