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/xcpp/issues if you have suggestions, or submit a patch with improvements to the https://github.com/exercism/xcpp/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.

1
exercism fetch cpp

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

1
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.

1
exercism submit PATH_TO_FILE