Unit I Foundation of Object Oriented Programming Introduction to procedural, modular, object-oriented and generic programming techniques, Limitations of procedural programming, Need of object-oriented programming, fundamentals of object-oriented programming: objects, classes, data members, methods, messages, data encapsulation, data abstraction and information hiding, inheritance, polymorphism. Inline functions, Function overloading, call by value and call by reference, return by reference, functions with default arguments, this pointer, illustrative Simple C++ Programs. Dynamic initialization of variables, memory management operators, Member dereferencing operators, operator precedence, typecast operators, Scope resolution operators, arrays. (Chapter - 1) Unit II Classes & Objects Defining class, Defining member functions, static data members, static member functions, private data members, public member functions, arrays of objects, objects as function arguments. Constructors and Destructors: types of constructors, handling of multiple constructors, destructors. (Complex Class & String Class) (Chapter - 2) Unit III Operator Overloading Fundamentals of Operator Overloading, Restrictions on Operators Overloading, Operator Functions as Class Members vs. as Friend Functions, Overloading Unary Operators, Overloading Binary Operators, Overloading of operators using friend functions. (Chapter - 3) Unit IV Inheritance & Polymorphism Introduction to inheritance, base and derived classes, friend classes, types of inheritance, hybrid inheritance, member access control, static class, multiple inheritance, ambiguity, virtual base class, Introduction to polymorphism, pointers to objects, virtual functions, pure virtual functions, abstract base class, Polymorphic class, virtual destructors, early and late binding, container classes, Contained classes, Singleton class. (Chapter - 4) Unit V Templates, Namespaces and Exception Handling Templates: Introduction, Function template and class template, function overloading vs. function templates. Namespaces: Introduction, Rules of namespaces Exception handling: Introduction, basics of exception handling, exception handling mechanism, throwing and catching mechanism, specifying exceptions, Multiple Exceptions, Exceptions with arguments C++ streams, stream classes, unformatted I/O, formatted I/O and I/O manipulators. (Chapter - 5) Unit VI Working with Files Introduction, classes for file Stream Operations, opening and closing files, detecting End_Of_File (EOF), modes of File Opening, file pointers and manipulators, updating file, error handling during file operations. (Chapter - 6)