User Tools

Site Tools


Table of Contents



C++ is a programming language that extended the functionality of C. It has been described as “C with Classes.” It was developed with efficiency, performance, and flexibility of use in mind.


C++ is an object oriented language that supports generics and functional features in addition to having low level memory manipulation like C. Throughout its development C++ has been guided by the following set of principles:

  • It must be driven by actual problems and its features should be immediately useful in real world programs.
  • Every feature should be implementable (with a reasonably obvious way to do so).
  • Programmers should be free to pick their own programming style, and that style should be fully supported by C++.
  • Allowing a useful feature is more important than preventing every possible misuse of C++.
  • It should provide facilities for organizing programs into separate, well-defined parts, and provide facilities for combining separately developed parts.
  • No implicit violations of the type system (but allow explicit violations; that is, those explicitly requested by the programmer).
  • User-created types need to have the same support and performance as built-in types.
  • Unused features should not negatively impact created executables (e.g. in lower performance).
  • There should be no language beneath C++ (except assembly language).
  • C++ should work alongside other existing programming languages, rather than fostering its own separate and incompatible programming environment.
  • If the programmer's intent is unknown, allow the programmer to specify it by providing manual control.


C++ has some of the common programming vulnerabilities such as command injection, resource injection and LDAP injection as well as memory leaks, depending on the use of the language.

cplusplus.txt · Last modified: 2021/03/28 21:41 by alec