Introduction to C++
C++ is a statically typed, compiled, general-purpose, case-sensitive, and irregular programming language that supports procedural, object-oriented, and generic programming.
C++ is considered a middle-level language, combining features of both high-level and low-level languages.
C++ was developed by Bjarne Stroustrup starting in 1979 at Bell Labs in Murray Hill, New Jersey. It was an extension and improvement of the C language, initially named C with Classes, and later renamed to C++ in 1983.
C++ is a superset of C, and any valid C program is a valid C++ program.
Note: Statically typed programming languages perform type checking at compile time, not at runtime.
Object-Oriented Programming
C++ fully supports object-oriented programming, including the four pillars of OOP:
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
Standard Library
Standard C++ consists of three important parts:
- Core language, providing all the building blocks, including variables, data types, and constants, etc.
- C++ Standard Library, providing a rich set of functions for file and string operations, etc.
- Standard Template Library (STL), providing a rich set of methods for data structure operations, etc.
ANSI Standard
The ANSI standard ensures the portability of C++ — the code you write can be compiled on Mac, UNIX, Windows, and Alpha computers.
Since the ANSI standard has been stable for a long time, all major C++ compiler manufacturers support the ANSI standard.
Learning C++
Learning C++ is about understanding concepts rather than delving into technical details.
The goal of learning a programming language is to become a better programmer, i.e., to design and implement new systems more efficiently and maintain old ones.
C++ supports multiple programming styles. You can write code in the style of languages like Fortran, C, Smalltalk, etc. Each style effectively ensures runtime and space efficiency.
Usage of C++
C++ is used by programmers in virtually every application domain.
C++ is often used for writing device drivers and other software that requires real-time performance and direct hardware manipulation.
C++ is widely used in teaching and research.
Any user of a Mac or Windows PC indirectly uses C++ because the primary user interfaces of these systems are written in C++.
Standardization
Release Date | Common Name | Notes |
---|---|---|
2020 | C++20, C++2a | ISO/IEC 14882:2020 |
2017 | C++17 | Fifth C++ Standard |
2017 | coroutines TS | Coroutine Library Extension |
2017 | ranges TS | Range Mechanism |
2017 | library fundamentals TS | Standard Library Extension |
2016 | concurrency TS | Extensions for Concurrent Computing |
2015 | concepts TS | Concept Library for Compile-Time Optimization |
2015 | TM TS | Transactional Memory Operations |
2015 | parallelism TS | Extensions for Parallel Computing |
2015 | filesystem TS | File System |
2014 | C++14 | Fourth C++ Standard |
2011 | - | Decimal Floating-Point Extension |
2011 | C++11 | Third C++ Standard |
2010 | - | Mathematical Function Extension |
2007 | C++TR1 | C++ Technical Report: Library Extension |
2006 | - | C++ Performance Technical Report |
2003 | C++03 | Second C++ Standard |
1998 | C++98 | First C++ Standard |