Course Objectives:
Describe the procedural and object oriented paradigm with concepts of streams, classes, functions, data and objects
Understand dynamic memory management techniques using pointers, constructors, destructors
Describe the concept of function overloading, operator overloading, virtual functions and polymorphism
Classify inheritance with the understanding of early and late binding, usage of exception handling, generic programming
Demonstrate the use of various OOPs concepts with the help of programs Course Outcomes: By the end of the course, the student
Classify object oriented programming and procedural programming
Apply C++ features such as composition of objects, operator overloads, dynamic memory allocation, inheritance and polymorphism, file I/O, exception handling
Build C++ classes using appropriate encapsulation and design principles
Apply object oriented or non-object oriented techniques to solve bigger computing problems
UNIT I Introduction to C++:
Difference between C and C++, Evolution of C++, The Object Oriented Technology, Disadvantage of Conventional Programming, Key Concepts of Object Oriented Programming, Advantage of OOP, Object Oriented Language.
UNIT II Classes and Objects &Constructors and Destructor:
Classes in C++, Declaring Objects, Access Specifiers and their Scope, Defining Member Function, Overloading Member Function, Nested class, Constructors and Destructors, Introduction, Constructors and Destructor, Characteristics of Constructor and Destructor, Application with Constructor, Constructor with Arguments parameterized Constructor, Destructors, Anonymous Objects.
UNIT III Operator Overloading and Type Conversion & Inheritance:
The Keyword Operator, Overloading Unary Operator, Operator Return Type, Overloading Assignment Operator (=), Rules for Overloading Operators, Inheritance, Reusability, Types of Inheritance, Virtual Base ClassesObject as a Class Member, Abstract Classes, Advantages of Inheritance, Disadvantages of Inheritance.
UNIT IV Pointers & Binding Polymorphisms and Virtual Functions: Pointer, Features of Pointers, Pointer Declaration, Pointer to Class, Pointer Object, The this Pointer, Pointer to Derived Classes and Base Class, Binding Polymorphisms and Virtual Functions, Introduction, Binding in C++, Virtual Functions, Rules for Virtual Function, Virtual Destructor.
UNIT V Generic Programming with Templates & Exception Handling: Definition of class Templates, Normal Function Templates, Over Loading of Template Function, Bubble Sort Using Function Templates, Difference between Templates and Macros, Linked Lists with Templates, Exception Handling, Principles of Exception Handling, The Keywords try throw and catch, Multiple Catch Statements, Specifying Exceptions. Overview of Standard Template Library, STL Programming Model, Containers, Sequence Containers, Associative Containers, Algorithms, Iterators, Vectors, Lists, Maps.
Text Books:
1) A First Book of C++, Gary Bronson, Cengage Learning.
2) The Complete Reference C++, Herbert Schildt, TMH
. Reference Books:
1) Object Oriented Programming C++, Joyce Farrell, Cengage.
2) C++ Programming: from problem analysis to program design, DS Malik, Cengage Learning
3) Programming in C++, Ashok N Kamthane, Pearson 2nd Edition
e- Resources:
1) https://nptel.ac.in/courses/106/105/106105151/
2) https://github.com/topics/object-oriented-programming