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




 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++




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




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




 Overview of Inheritance

 Defining Base and Derived Classes

 Constructor and Destructor Calls




 Overview of Polymorphism

Input and Output in C++ Programs

Input and Output in C++ Programs


 Standard Streams




 Unformatted Input and Output

 File Input and Output





 Inheritance and Exceptions


 Exception Hierarchies


 Inside an Exception Handler



 Template Overview


 Customizing a Templated Method


 Standard Template Library Containers