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 meansone 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
- Efficiency: C++ allows low-level memory manipulation and provides direct memory access to hardware, making it highly efficient.
- Object-Oriented: C++ is an object oriented programming language. It supports concepts like classes, objects, inheritance, abstraction, and polymorphism.
- Dynamic Memory Allocation: C++ supports dynamic memory allocation with the help of pointers in C++, we can allocate the memory dynamically.
- 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.
- 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.
- Standardization: C++ is an ISO standardized language, ensuring consistency and compatibility across implementations.
- 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.
- 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.
- Flexibility: C++ allows for multiple programming paradigms, including procedural, object-oriented, and generic programming.
- Community: C++ has a large and active community for developers, leading to the availability of libraries, frameworks, and resources.
- Legacy Code Support: C++ is commonly used in maintaining and extending legacy systems and software.
- High Performance: C++ code is compiled into machine code, often resulting in faster execution compared to interpreted languages.