Object-Oriented Programming through C++
Year / Semester: 
3rd Semester

Unit 1 : Introduction to  Object Oriented Programming                                                    
Basic concept of OOP, Comparison of Procedural Programming and OOP, Benefits of OOP, C++ compilation, Abstraction, Encapsulation, Inheritance, Polymorphism, Difference between C and C++. 

Unit 2 : Elements of C++ Language                                                                       
Tokens and identifiers: Character set and symbols, Keywords, C++ identifiers; Variables and Constants: Integer, character and symbolic constants; Dynamic initialization of variables, Reference variables, Basic data types in C++, Streams in C++.

Unit 3 : Operators and Manipulators
Operators, Types of operators in C++, Precedence and associativity of operators, Manipulators.

Unit 4 : Decision and Control Structures                                                                         
if statement, if-else statement, switch statement, Loop: while, do-while, for; Jump statements: break, continue, go to.  

Unit 5 : Array, Pointer and Structure                                                                                   
Arrays, pointers, structures, unions;

Unit 6 : Functions                                                                                                                                
main() function, components of function: prototype, function call, definition, parameter; passing arguments; types of function, inline function, function overloading.
Unit 7: Introduction to Classes and Objects
Classes in C++, class declaration, declaring objects, Defining Member functions, Inline member function, Array of objects, Objects as function argument, Static data member and member function, Friend function and friend class.

Unit 8: Constructors and Destructors
Constructors, Instantiation of objects, Default constructor, Parameterized constructor, Copy constructor and its use, Destructors, Constraints on constructors and destructors, Dynamic initialization of objects.

Unit 9: Operator Overloading                                                                              
Overloading unary operators: Operator keyword, arguments and return value; overloading unary and binary operators: arithmetic operators, manipulation of strings using operators; Type conversions.

Unit 10: Inheritance                                                                                                  
Derived class and base class: Defining a derived class, Accessing the base class member, Inheritance: multilevel, multiple, hierarchical, hybrid; Virtual base class, Abstract class

Unit 11: Virtual Functions and Polymorphism                                                         
Virtual functions, pure virtual functions; Polymorphism, Categorization of polymorphism techniques: Compile time polymorphism, Run time polymorphism

Suggested Readings: 

1. E.Balagurusamy: Object oriented programming with C++
2. K.R.Venugopal: Mastering C++
3. Bjarne Stroustrup: The C++ programming language.