C++ (pronounced cee plus plus) is a general purpose programming language developed by Bjarne Stroustrup starting in 1979 at Bell Labs. It is immensely popular, particularly for applications that require speed and/or access to some low-level features. It is considered to be an intermediate level language, as it encapsulates both high and low level language features.

C++ supports procedural, object-oriented, functional and generic programming. Compilers for C++ are available for essentially every platform, including Windows, Mac OS, and Linux.

Key Benefits:

  • Type safety: Encapsulate necessary unsafe operations
  • Resource safety: Not all resource management is managing memory
  • Performance: For some parts of almost all systems, it's important
  • Predictability: For hard and soft real-time systems
  • Teachability: Complexity of code should be proportional to the complexity of the task
  • Readability: People and machines ("analyzability")
  • Direct map to hardware: of instructions and fundamental data types
  • Zero-overhead abstraction: Classes with constructors and destructors, inheritance, generic programming, functional programming techniques

The standard for C++ is maintained by the International Organization for Standardization (ISO), and the current version of C++ as of December 2014 is C++14 (named not as the 14th version of C++, but rather signifying that the standard was ratified in 2014).

The best thing about C++ is that it runs on everything from embedded processors with very limited resources to the largest mainframe supercomputer and every personal computer in between.

Help us explain this better! File a GitHub issue at https://github.com/exercism/cpp/issues if you have suggestions, or submit a patch with improvements to the https://github.com/exercism/cpp/blob/master/docs/ABOUT.md file.

Try It!

If you've downloaded the command-line client and have C++ installed on your machine, then go ahead and fetch the first problem.

exercism fetch cpp

In order to be able to submit your solution, you'll need to configure the client with your Exercism API key.

exercism configure --key=YOUR_EXERCISM_KEY

When you've written a solution, submit it to the site. You'll have to configure the command-line client with your exercism API key before you can submit.

exercism submit PATH_TO_FILE