Unit I Object-Oriented Programming Concepts: Introduction, comparision between procedural programming
paradigm and object-oriented proramming paradigm, basic concepts of object-oriented 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.
Unit II 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.
Unit III Classes and Objects: Specifying a class, creating class objects, accessing class 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.
Unit IV 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.
Unit V Constructors and Destructors: Need for constructors and destructors, copy constructor, dynamic
constructors, explicit constructors, destructors, constructors and destructors with static members, initializer lists.
Unit VI 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.
Unit VII Inheritance: Introduction, defining derived classes, 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.
Unit VIII Virtual functions & Polymorphism: Concept of binding - early binding and late binding, virtual
functions, pure virtual functions, abstract clasess, virtual destructors.
Unit IX Exception Handling: Review of traditional error handling, basics of exception handling, exception
handling mechanism, throwing mechanism, catching mechanism, rethrowing an exception, specifying
exceptions.
Unit X Templates and Generic Programming: Template concepts, Function templates, class templates,
illustrative examples.
Unit XI Files: File streams, hierarchy of file stream classes,
reading/writing of files, accessing records