The C language was developed in 1972 by Dennis Ritchie at Bell Telephone laboratories, primarily as a systems programming language (a language to write operating systems with). Ritchie’s primary goals were to produce a minimalistic language that was easy to compile, allowed efficient access to memory, produced efficient code, and was self-contained (not reliant on other programs). For a high-level language, it was designed to give the programmer a lot of control, while still encouraging platform (hardware and operating system) independence (that is, the code didn’t have to be rewritten for each platform).

What is C++ good at ?

C++ excels in situations where high performance and precise control over memory and other resources is needed. Here are a few common types of applications that most likely would be written in C++:

  • Video games
  • Real-time systems (e.g. for transportation, manufacturing, etc…)
  • High-performance financial applications (e.g. high frequency trading)
  • Graphical applications and simulations
  • Productivity / office applications
  • Embedded software
  • Audio and video processing

 

C++ Overview

 

 C++ Characteristics

 Object-Oriented Terminology

 

 Polymorphism

 

 Object-Oriented Paradigm

 Abstract Data Types

 I/O Services

 Standard Template Library

 Standards Compliance

 

Functions and Variables

 Functions: Declaration and Definition

 

 Variables: Definition, Declaration, and Scope

 

 Variables: Dynamic Creation and Derived Data

 Arrays and Strings in C++

 

 Qualifiers

 

Classes in C++

 

 Defining Classes in C++

 Classes and Encapsulation

 

 Member Functions

 

 Instantiating and Using Classes

 Using Constructors

 Multiple Constructors and Initialization Lists

 Using Destructors to Destroy Instances

 

 Friendship

 

Operator Overloading

 

 Operator Overloading

 Working with Overloaded Operator Methods

 

Initialization And Assignments

 

 Initialization vs. Assignment

 

 The Copy Constructor

 Assigning Values

 

 Specialized Constructors and Methods

 

 Constant and Static Class Members

 

Storage managements

 

 Memory Allocation

 

 Dynamic Allocation: new and delete

 

Inheritance

 

 Overview of Inheritance

 Defining Base and Derived Classes

 Constructor and Destructor Calls

 

Polymorphism

 

 Overview of Polymorphism

Input and Output in C++ Programs

Input and Output in C++ Programs

 

 Standard Streams

 

 Manipulators

 

 Unformatted Input and Output

 File Input and Output

 

Exceptions

 

 Exceptions

 Inheritance and Exceptions

 

 Exception Hierarchies

 

 Inside an Exception Handler

 

Templates

 Template Overview

 

 Customizing a Templated Method

 

 Standard Template Library Containers