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.