- [Narrator] C++ is a powerful, flexible general purpose
programming language that supports a number
of different coding paradigms
including object-oriented, procedural,
functional and generic programming.
What is now called C++ was originally C with classes,
developed in the late 1970s
by the Danish computer scientist Bjarne Stroustrup.
C++ began its life as a set of enhancements
to allow object-oriented programming in C.
C++ is an extension of the C language.
The standard incorporates the entire C language,
adding many powerful features while retaining
as much of C's syntax, efficiency and utility as possible.
Over 40 years later, C++ remains a best practices choice
for many types of projects,
including large-scale systems and applications.
C++ is used to write code at all levels,
including firmware, operating systems
and large-scale applications.
Today, vast numbers of medium
to large-scale applications are written in C++.
The list is huge and it includes
every version of Windows since 1.0,
the parts of Unix that are written in plain C.
Major parts of Mac OS are written in C++
and other parts are written in objective C,
which is also based on C.
Major business applications like Microsoft Office
and QuickBooks are written in C++.
Adobe Photoshop, Illustrator and InDesign,
Firefox, Google Chrome and most web browsers
are written in C++.
Major websites, like Amazon, Facebook and Google,
are either written in or have significant
back-end resources written in C++.
In fact, most major programming languages,
including Java, PHP, Python and Perl,
are written in C or C++.
C++ is made up of a number of components,
parts of which require
understanding distinct sets of grammar.
You can think of it as five connected languages.
The C language itself is the basis of C++
and is entirely incorporated in its definition.
As part of the C language definition,
the C preprocessor is also incorporated in C++.
C++ classes and objects are used
for object-oriented programming patterns.
C++ templates are used for generic programming
and the C++ standard template library, the STL,
provides a tremendous amount of common functionality.
The STL, along with the C and C++ standard libraries,
are part of the C++ standard.
The first standard for C++ was ratified by the ISO in 1998.
This is commonly referred to as C++98.
C++03 was essentially a bug fix release
so it's rarely referred to on its own.
Most compilers that support C++03
simply refer to it as C++98.
Ratified in August 2011,
C++11 was the first major extension to the C++ standard.
It provided a number of new features,
including the range-based for loop,
type inference, lambda functions
and unambiguous null pointer constant
and many smaller new features.
C++14 was another small maintenance release
and did not include any major changes to language.
Ratified in December 2017,
C++17 includes mostly refinements to existing features
and the proposed C++20 standard
includes a number of new features,
including modules, a ranges library,
concepts and coroutines.
Most of these features are not yet implemented
as of this recording in any of the major compilers
so discussions of these new features will be limited.
This course mostly covers C++17,
which is essentially C++11 with refinements.
The current versions of all the major compilers
in use today support C++17.
The C++ programming language
is one of the most important languages
in computing today.
It is the go-to language for many large and small projects
and forms the basis of other popular languages
like Java, C Sharp, Python, PHP and many others.