Introduction
Philosophy of object oriented programming (OOP), Features of OOP, Advantages of OOP over structured programming, Classes and objects, Array of objects, Object references, Memory allocation of objects, Constructors, Destructors and different types of constructors, Function overloading, Operator overloading and type conversion of objects.
Inheritance
Types of inheritance, Composition and Aggregation.
Polymorphism
Abstract classes, virtual and pure virtual functions overriding, Interface, Runtime type identification (RTTI), Exception handling, Template functions and classes, Generics, Namespace, Package, Standard template library.