First, what is C++?
One of the more popular and versatile languages used by programmers, C++ is a broad application general-purpose programming language with exciting potential for creative projects of all types.
In this guide, we’ll walk you through the basics of the language, as well as some of the specific use cases you could potentially use C++ for in your own creative or professional career.
How was C++ created?
One of the oldest programming languages still broadly in use today, C++ was originally created by Bjarne Stroustrup, a Danish computer scientist, who began work on "C with Classes", the predecessor to C++ in the late 1970s.
The motivation for creating a new language originated from Stroustrup's experience in programming for his Ph.D. thesis. Stroustrup found that existing aspects of C with Classes were lacking in both speed and programming potential, and sought to develop a new and improved version of the language for broader applications.
In 1982, Stroustrup finished work on and released C++, the earliest version of the same language in use today. Stroustrup added a number of useful features, including virtual functions, function name and operator overloading, references, constants, type-safe free-store memory allocation (new/delete), improved type checking, and BCPL style single-line comments with two forward slashes.
While other languages were modernized or replaced by new and improved alternatives, C++ has continued to thrive largely due to ongoing updates and revisions to the original version. These updates have continued over the past decade, with major new releases and additions to the standard library in 2011, 2014, and another planned for this year.
According to InfoWorld, C++ remains the fourth most popular programming language in the world in current times, behind Java, C, and Python.
So what is C++ used for usually?
Unique from most programming languages, which are often designed with specific needs and use cases in mind, C++ offers the ability to create and solve programming issues in a wide array of industries and market verticals. Here are some of the most popular and common uses:
One of the advantages of C++ is its speed and closeness to hardware, allowing it to manipulate resources efficiently and fast. That’s why it is the primary choice for video games, as well as game development engines. For example, most of the Unity Engine, as well as the Unreal Engine are built using C++.
Some additional benefits of using C++ for games include:
- The language overrides the complexity of 3D games
- C++ helps optimize resources, which improves game functionality and user experience
- C++ allows procedural programming for both intensive CPU functions and in order to provide control over hardware
Many of the graphical tools and applications are written in C++, including Adobe Photoshop and Illustrator, because of its optimal use of the hardware, in terms of performance and memory optimization.
To put it another way, C++ is commonly used in building real-time image processing, mobile sensor applications, and visual effects, the modeling for which can be coded with the language efficiently. Software that is built and developed in this fashion can be used for animation, environments, motion graphics, virtual reality, and character creation.
Not only is this further applicable to gaming, but is often used for entertainment programs and other audiovisual-centric applications and websites.
Many modern browsers, including Google Chrome and Mozilla Firefox, use C++ in their rendering engines.
As C++ was designed with a bias toward system programming and performance, many of the major operating systems use C++ at their core, including Windows, Linux, Android, Ubuntu, and many more.
Many embedded systems use C++, because of their resource-constraints and the need for speed. Examples of such embedded systems include telephone switches, smart watches, GPS systems, and even space probes.
Modern database systems need efficiency and speed, which is why some of the most popular database management systems are written in C++, which was designed specifically with those goals in mind. Some examples of prominent databases built upon C++ include MySQL, PostgreSQL, and MongoDB (an essential part of the popular MEAN Stack).
Many banking, trading, medical and engineering applications are written in C++ as they require multi-threading, concurrency, and high performance. These applications are used by the largest corporations in the world and are able to process millions of data points.
C++ is considered a comparatively low-level programming language and has been used to create many compilers, for example the GNU Compiler Collection (GCC).
In addition to these use cases across a wide variety of industries, many experienced programmers often point to C++ as a great first step to learning more complex programming languages such as Java or Python.
What are the Benefits of Learning C++?
Aside from the ability to create and program in all of the fields we listed above, there are some additional benefits for your creative and professional career if you choose to learn C++.
Ample Library Support
While not the only language with abundant library support available, C++ is supported by the Standard Template Library (STL) which contains largely four key components, including algorithms, containers, functions, and iterators.
The algorithms can help automate different key functions such as sorting, searching, etc. The containers store classes to implement different data structures that are commonly used such as stacks, queues, hash tables, vectors, sets, lists, maps, etc. The functors allow the working of the associated function to be customized with the help of the parameters passed. Finally, the iterators are used for working upon a sequence of values.
For a new C++ programmer (or someone interested in learning), this means that writing code becomes more simple with a wide array of existing resources that can perform functions for you. No need to start from scratch with C++.
Thriving Online Community
One of the most useful aspects of any language for new programmers are flourishing online communities of experienced programmers, sharing best practices and helping each other to solve coding problems in C++ as they arise in different use cases. C++ is notable for having a particularly strong online community, largely the result of decades of use and improvement by experienced programmers in the past.
Scope-Bound Resource Management
One of the most essential and unique features of C++ is scope-bound resource management, often referred to by the abbreviation SBRM (more commonly known as "RAII"). Currently, C++ is the only industrial programming language that is centered around this concept.
In C++, lifetimes of all objects are precisely known, and subsequently, efficiently written C++ programs guarantee that resources are acquired and released in a deterministic manner. In comparison, garbage-collected or other managed languages do not provide any such guarantees. In fact, objects in those languages may continue to exist after the end of their lifetime.
While other languages like C# and Python and other more suitable languages have taken over some of the use cases that were primarily covered by C++ before, its core niche remains intact due to this feature of the language.
Portability and Adaptability
Simply put, programs created and developed in C++ can be moved from one platform to another more simply than those of competing programming languages. This is one of the main reasons that applications requiring multi-platform or multi-device development often use C++.
While this isn’t unique to C++, the wide array of use cases (and thus, needs for experienced developers) for the language lead it to be one of the most promising languages on which to base a programming career. According to leading U.S. job finding site Indeed, the average base salary for a C++ developer is just over $100,000 -- significantly higher than many established professional careers like teaching and lower management in business.
And these statistics don’t take into account the recent explosion of remote work platforms and companies opting for offshoring, meaning that you are no longer restricted to your physical environment for jobs. Companies like Upwork offer easy platforms to connect with companies and startups seeking C++ programmers on a contract or project basis, meaning you can find long-term careers and short-term freelance work easily from companies all over the world.
How do I learn C++?
Although it is considered to have a comparatively harder learning curve, choosing a quality online coding class is a great way to get your feet wet with this versatile language. For example, SoloLearn’s free C++ Tutorial makes it easy for you to learn and practice C++ with bite-sized lessons and practical exercises! ‘
For someone completely new to the language, the best method for learning is to start with the basics. SoloLearn’s tutorial offers lessons in basic concepts, data types, arrays, pointers, conditional statements, loops, functions, classes, and objects.
Once you have moved beyond the basics, the next step is to start practicing with real live code and solving common problems and C++ coding challenges. SoloLearn has you covered there too -- offering an ever-growing code playground to actually apply your skills.
Want to see what C++ looks like in action?
As a bonus, below is a simple C++ program to generate a password of a given length:
using namespace std;
static const char alphanum =
int size = sizeof(alphanum) - 1;
int length = 8;
for (int i = 0; i < length; i++)
cout << alphanum[rand() % ::size];
Ok, I’m ready to learn C++!
Convinced that C++ might be worth the time and effort to learn for your own purposes? Then it is time to check out SoloLearn’s C++ Tutorial, which includes lessons on all of the basics you’ll need to use the language, as well as fun quizzes and coding challenges for you to practice your newfound skills. Give it a try!