1. Object-Oriented Programming Concepts: Introduction, comparision between procedural
programming paradigm and object-oriented proramming paradigm, basic concepts of objectoriented
programming — concepts of an object and a class, interface and implementation of a class,
operations on objects, relationship among objects, abstraction, encapsulation, data hiding, inheritance,
overloading, polymorphism, messaging.
2. Standard Input/Output: Concept of streams, hierarchy of console stream
classes, input/output
using overloaded operators >> and << and memberv functions of i/o stream classes, formatting output,
formatting using ios class functions and flags, formatting using manipulators. members, access
specifiers, static members, use of const keyword, friends of a class, empty classes, nested classes, local
classes, abstract classes, container classes, bit fields and classes.
4. Pointers and Dynamic Memory Management: Declaring and initializing pointers, accessing
data through pointers, pointer arithmetic, memory allocation (static and dynamic), dynamic memory
management using new and delete operators, pointer to an object, this pointer, pointer related problems
- dangling/wild pointers, null pointer assignment, memory leak and allocation failures.
5. Constructors and Destructors: Need for constructors and destructors, copy
constructor, dynamic constructors, explicit constructors, destructors, constructors and destructors
with static members, initializer lists.
6. Operator Overloading and Type Conversion: Overloading operators, rules for overloading
operators, overloading of various operators, type conversion - basic type to class type, class type to
basic type, class type to another class type.
7. Inheritance: Introduction, defining derived clases, forms of inheritance, ambiguity in multiple
and multipath inheritance, virtual base class, object slicing, overriding member functions, object
composition and delegation, order of execution of constructors and destructors.
8. Virtual functions & Polymorphism: Concept of binding - early binding and late binding, virtual
functions, pure virtual functions, abstract clasess, virtual destructors.
9. Exception Handling: Review of traditional error handling, basics of exception handling,
exception handling mechanism, throwing mechanism, catching mechanism, rethrowing an exception,
specifying exceptions.
10. Templates and Generic Programming: Template concepts, Function templates, class templates,
illustrative examples.
11. Files: File streams, hierarchyof file stream classes, error handling during file operations,
reading/writing of files, accessing records randomly, updating files.