History and Features of C++

Development of C++ was motivated by the desire to add object-oriented features to C, while still maintaining the efficiency and low-level capabilities of C. Here's brief overview of its history:

History

  • 1979: Bjarne Stroustrup started developing C++ as an extension of the C language. The first C++ compiler, named “C with classes” was created.
  • 1983: The name “C++” was officially adopted, signifying the evolutionary nature of the language. The ++ in C++ comes from the C language. In C language,  ++ means incrementing a variable by 1. So, C++ roughly means one more than C.
  • 1985: The first edition of Stroustrup's book, “The C++ Programming Language,” was published. This book played a crucial role in popularizing C++.
  • 1989: The first ANSI/ISO standard for C++ was released, known as C++98 or C++03 (after a minor revision in 2003).
  • 2011: C++11 introduced significant language enhancements, smart pointers, and a new standard library.
  • 2014: C++14 brought further language improvements and library enhancements.
  • 2017: C++17 introduced features like structured bindings and filesystem library.
  • 2020: C++20 brought features like concepts, ranges, and improved support for multithreading.

Characteristic/Features

  1. Efficiency: C++ allows low-level memory manipulation and provides direct memory access to hardware, making it highly efficient.
  2. Object-Oriented: C++ is an object oriented programming language. It supports concepts like classes, objects, inheritance, abstraction, and polymorphism.
  3. Dynamic Memory Allocation: C++ supports dynamic memory allocation with the help of pointers in C++, we can allocate the memory dynamically.
  4. Pointers: A pointer is a variable that stores the address of another variable. C++ supports the use of pointers. They are used to interact with the memory location of any variable.
  5. Broad Library: C++ offers a vast library full of in-built functions that make it easy for the programmer to code. The library functions can be accessed using different header files in C++. e.g., STL.
  6. Standardization: C++ is an ISO standardized language, ensuring consistency and compatibility across implementations.
  7. Compiler Based: Unlike other languages like Python and Java which are interpreter-based, C++ is a compiler based language. Hence, C++ is much faster than Python or Java.
  8. Portability: C++ programs can be executed in different machines with little or no change in the code. But C++ is not platform independent. Suppose we have compiled a program in a Windows operating system. In that case, that compiled file (.exe) will not work in a Mac OS. But, a.cpp file created in windows will work perfectly on Mac OS.
  9. Flexibility: C++ allows for multiple programming paradigms, including procedural, object-oriented, and generic programming.
  10. Community: C++ has a large and active community for developers, leading to the availability of libraries, frameworks, and resources.
  11. Legacy Code Support: C++ is commonly used in maintaining and extending legacy systems and software.
  12. High Performance: C++ code is compiled into machine code, often resulting in faster execution compared to interpreted languages.