Unit - I Principles of Object Oriented Programming 1.1 Procedure Oriented Programming (POP) verses Object Oriented Programming (OOP). 1.2 Basic concepts of object Oriented Programming, Object Oriented Languages, Applications of OOP. 1.3 C verses C++, Structure of C++ program, Simple C++ program. 1.4 Tokens, keywords, variables, constants, basic data types, user defined data types, type casting, operators, expressions. 1.5 Control structures : Decision making statements and Loops 1.6 Scope resolution operator, memory management operators. 1.7 Arrays, Strings and Structures in C++. Unit - II Classes and Objects 2.1 Class and Object : Introduction, specifying a class, access specifies, defining member functions, creating Objects, memory allocations for Objects. 2.2 Static data members, static member function, friend Function 2.3 Arrays of Objects, Object as function arguments. 2.4 Concepts of Constructors, Types of constructors 2.5 Multiple Constructors in a Class, Constructors with default arguments. 2.6 Destructors Unit - III Extending classes using Inheritance 3.1 Introduction to Inheritance, defining a derived class, visibility modes and effects. 3.2 Types of Inheritance : Single, multilevel, multiple, hierarchical, hybrid. 3.3 Virtual base class, abstract class, constructors in derived class. Unit - IV Pointers and Polymorphism in C++ 4.1 Concepts of Pointer : Pointer declaration, Pointer operator, address operator, Pointer arithmetic. 4.2 Pointer to Object : Pointer to Object, this pointer, Pointer to derived class. 4.3 Introduction to Polymorphism, Types of Polymorphism. 4.4 Compile time Polymorphism : Function overloading, operator overloading, overloading of unary and binary operators, Rules for operator overloading. 4.5 Run time polymorphism : Virtual functions, rules for virtual functions, pure virtual function. Unit - V File Operations 5.1 C++ stream classes, Classes for file stream operations. 5.2 Opening files, closing files, reading from and writing to files. 5.3 Detection of end of file, file modes.