Overview of C++
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.