Imperative, Object Oriented, and Generic.
To discuss the development of C++, we must go back to its parent language that it derives from: C. In the 70's, a Dennis Ritchie of Bell Laboratory created a new operating system with self-made programming language that produced compact and fast-paced programs. This programming language was called C. In the early 80's, also at the Bell Laboratory, Bjrane Stroustrup took the C language, and enhanced it to fit better for writing good programs easier and more pleasant, by adding Object-Oriented Programming features to C, and called it C++. An interesting fact about C++ is that the special effects for Star Wars movies were programmed with C++.
C++ is a programming language that can be used for any general purpose since it is imperative, obkject oriented, and generic. It is imperative in the sense that it, when executed appropriately, focuses on describing how a program operates. As opposed to a declarative programming language, which focuses on what the program should accomplish without enough specification to how something can attain such results. C++ is also object oriented, just as Java, and Python, which is based on the concept that objects which many contain specific data or field (attributes), can be accessed and modified. These are also known as multi-paradign programming languages. C++ is generic in the sense that it uses algorithm that are instantiated when needed to provide specific parameters. Think of it as writing common functions or types that differ only in set of types. This will reduce duplication. The current C++ is C++17, which has new features and an enlarged standard library that supersedes previous versions.
Since we now know that C++ is inherited from its parent language, C, it is important to note how they are similar and different. As in C, C++ supports object storage. This means, it supports memory management, such as static storage, thread, automatic and dynamic storage. To make it clear, we can compare C and C++ to a traditional typewriter with an electrical type writer. C++ is better, efficient, has a better object oriented layer, and is faster than C. On the other hand, C is quite generic, it doesn't support classes and objects like C++ does. C++ is lightweight, and compiled, and a developer has the option to either benefit from it by utilizing it as a high level or a low level programming language.
There are several pros and cons associated with using C++. Some pros include: it is extremely popular (which means there are a lot of support, and demand from companies, as well as research), it has a lot of free code for download (including templates). C++ is also quite powerful, as it can be used to create just about any programs. Since many languages are created with inspiration from C++ (such as Java), first time users of C++ will have some understanding of the language to use it.
While it is a powerful language to use, it is important to note that it is not as safe of a language as we may want it to be. There are many security issues and memory leaks with their memory management system, which causes extra time and effort to fix for programmers. Since there are no built-in memory, developers must use external libraries to fix such leaks. If a developer want to calculate systematic functions, they will come across trouble with calculating metrics, since C++ does not offer full algebraic data types ("C, Wikiversity). Unlike Python, the syntaxes are difficult to learn and understand for first time programmers, so such complexity quires a lot of self-learning and tutorials. Some famous programmers such as Joshua Bloch (former sofrware engineer of Google) described C++ as a language that is "pushed well beyond its complexity threshold, and yet there are a lot of people programming it." Ken Thompson, the original designer and implementer of Unix, calls C++ a "bad language. It does a lot of things half well and it's just a garbage heap of ideas that are mutually exclusive." ("C," Wikipedia).
Most gaming companies use C++ to program their games, therefore it is always a high demand for gaming companies. As for more of the generality of the concept, C++ is portable and already established, it is also quite fast. Managed code is easy to decompile with C++, and a features like multiple ingeritance and templates lets you work with unmanaged code.
As mentioned previously, most gaming companies look for C++ skills. It is important to note that C++ could be utilized in many ways, but usually any company that works iwth low level systems or develops high performance software, will usually use C++. This includes Quora, Facebook, Google, Microsoft, NASA, Uber, etc. Outside of the more famous companies listed, almost all electronics companies use C++ as well. This incldes, ARM, Qualcomm, MediaTech, Intel, Samsung, Sony, HP, FitBit, etc.
Some video games that are written in C++ are Doom3, and Tomb Raider.