To learn the basic principles of object-oriented programming paradigm using C++
Programming Paradigms - Introduction to OOP – Overview of C++ - Classes – Structures – Union – Friend Functions – Friend Classes – Inline functions – Constructors – Destructors –Dynamic Initialization of Objects - Static Members – Passing objects to functions – Function returning objects-Arrays of Objects, Object as Function Arguments
Arrays – Pointers – this pointer – References – Dynamic memory Allocation – functions Overloading – Default arguments – Overloading Constructors – Pointers to Functions – Operator Overloading - Type Conversion
Inheritance – Types - Derived Class Constructors- Issues in Inheritance – Virtual base Class – Polymorphism – Virtual functions – Pure virtual functions
Class templates and generic classes – Function templates and generic functions – Overloading function templates – power of templates – Exception Handling – Derived class Exception – over handling generic functions – Exception handling Functions
Streams – Formatted I/O with IOS class functions and manipulators –File I/O – Name spaces –Array based I/O – Error handling during file operations - Formatted I/O – STL: Overview-Container Classes Lists-Maps- Algorithms Using Functions and Objects-String Class - Sequence Containers, Iterators-Specialized Iterators - Associative Containers. Storing User- Defined Objects - Function Objects
1. Stephen Prata,”C++ Primer Plus”, 6th Edition ,Addison-Wesley Professional, 2011
2. BjarneStroustrup, “Programming: Principles and Practice Using C++,1st Edition, Addison-Wesley Professional, 2008
3. Andrew Koenig and Barbara E. Moo, “Accelerated C++: Practical Programming by Example”, 1st Edition, Addison-Wesley Professional, 2000
4. Bruce Eckel ,”Thinking in C++: Introduction to Standard C++: Volume One” 2nd Edition,PrenticeHall, 2000
5. Andrei Alexandrescu , “Modern C++ Design: Generic Programming and Design PatternsApplied” , 1st Edition, Addison-Wesley Professional, 2001
Students will be able to:
1. Identify classes with attributes and functions for given problem
2. Analyze the relationship between the classes link them using appropriate concepts
3. Design and implement abstract data types.
4. Devise generic classes capable of manipulating primitive and user defined data types.