C++ was designed with an orientation toward system programming and embedded, resource-constrained software and large systems, with performance, efficiency, and flexibility of use as its design highlights.[10] C++ has also been found useful in many other contexts, with key strengths being software infrastructure and resource-constrained applications,[10] including desktop applicationsvideo gamesservers (e.g. e-commerceweb search, or databases), and performance-critical applications (e.g. telephone switches or space probes).

The C++ language has two main components: a direct mapping of hardware features provided primarily by the C subset, and zero-overhead abstractions based on those mappings. Stroustrup describes C++ as “a light-weight abstraction programming language [designed] for building and using efficient and elegant abstractions”; and “offering both  hardware access and abstraction is the basis of C++. Doing it efficiently is what distinguishes it from other languages.

C++ inherits most of C’s syntax. The following is Bjarne Stroustrup’s version of the Hello world program that uses the C++ Standard Library stream facility to write a message to standard outputardware access and abstraction is the basis of C++. Doing it efficiently is what distinguishes it from other languages.