# C++ Programming - Course Contents
1 Introduction
Difference between C & C++
Object oriented technology & Concepts of oops
Advantages of oops, Disadvantage of conventional programming
Structure of C++ program, Header files and Libraries
Streams in C++ and Stream classes
Predefined streams, Formatted and Unformatted data, unformatted console I/O operations
Member functions of istream class, Formatted console I/O operations
Bit fields, Flags without bit field, Manipulators, User defined manipulators
2 Basic Concepts of C++
Tokens in C++, Variable declaration and initialization
Data types, Operators in C and C++
Scope access operator, Namespace
Memory management operator, Comma operator
Decision statements, Control loop statements
Structure of function, Passing arguments
L values and R values, Return by reference, Returning more values by reference
Default & Const arguments, Inputting default arguments
Inline functions, Function overloading, Principles of function of function overloading
3 Classes and Objects
Classes in C++, Declaring objects, access specifiers and their scope
Member functions, Outside member function as Inline
Data hiding or Encapsulation
Classes, Objects and memory
Static member variables, static member functions, static object
Array of objects, Object as function arguments
Friend functions
Const member functions, Volatile member functions, recursive member functions
Local classes, Empty, Static and Const classes, Nested classes
Member function and Non-member function, over loading member functions
4 Constructors and Destructors
Characteristics of constructors & destructors, application with constructors
Parameterized constructors, Overloading constructors(multiple constructors)
Array of objects using constructors, Constructors with default arguments, Copy constructors
The Const objects, Destructors, Calling constructors & destructors, Qualifier and nested classes
Anonymous objects, Private constructors & destructors
Dynamic initialization using constructors, Dynamic operators and Constructors
Recursive constructor, constructors & destructors with static members, Local vs. Global object
5 Operator Overloading and Type Conversions
Overloading unary operators, Constraint on Increment and Decrement operators
Overloading Binary operators, Overloading with Friend Function
Overloading Assignment operator(=)
Type conversion, rules for overloading operators
One argument constructor and operator function
Overloading Stream operators
6 Inheritance
Reusability, Access specifiers
Simple inheritance, protected data with private inheritance
Types of inheritances
Virtual base classes, Constructors, Destructors
Object as a class member, Abstract classes
Qualifier classes and inheritance, Constructors in derived classes, pointers and inheritance
Overloading member functions, Advantages & Disadvantages of inheritance
7 Binding, Polymorphism and Virtual Functions
Binding in C++, Static binding, Dynamic binding
Pointer to Base and Derived class objects
Virtual functions, Rules for virtual functions
Array of pointers, Pure virtual functions, Abstract classes, Working of virtual functions
Virtual functions in derived classes, Object slicing
Constructors and virtual functions, Virtual destructors, Destructors and virtual functions
8 Applications with Files
File Stream Classes, File opening Modes
File pointers and Manipulators, Manipulators with arguments
Sequential Access Files, Binary and ASCII files Random Access Operation
9 Generic Programming with Templates
Need of Template, Definition of Class Template, Normal Function Template, Working of Function Templates
Class Template with more parameters, Function Template with more arguments
Overloading of Template Functions, Member function Templates, Recursion with Template function
Class Template with Overloaded operators, Class Template Revisited, Class Templates and Inheritance
Container classes, Types of containers, Container Adaptors, Iterators
10 Exception Handling
Principle of Exception Handling, The keywords Try, Throw and Catch
Exception Handling Mechanism, Multiple catch statements, Catching Multiple Exceptions
Re-Throwing Exceptions, Specifying Exception
Exceptions in Constructors & Destructors, Controlling Uncaught Exceptions, Class Template with Exception handling
11 Overview of Standard Template Library
STL Programming Model
STL Containers
Sequence Containers
Associative Containers
Parameters Used in Container Classes
STL Algorithms
The complete course includes extensive coding and practice exercises.