Object Oriented Concepts & Programming using C++ Course Objectives: Understand object-oriented programming features in C++, Apply these features to program design and implementation, Build good quality software using object-oriented programming technique Course To Cover- basic concepts of object-oriented programming — concepts of an object and a class, interface and implementation of a class, operations on objects, relationship among objects, abstraction, encapsulation, data hiding, inheritance, overloading, polymorphism, messaging. Standard Input/Output: Concept of streams, hierarchy of console stream classes, input/output using overloaded operators >> and << and member functions of i/o stream classes, Classes and Objects: Specifying a class, creating class objects, accessing class members, access specifiers, static members,nested classes, local classes, abstract classes Pointers and Dynamic Memory Management: Declaring and initializing pointers, accessing data through pointers, pointer arithmetic, memory allocation (static and dynamic), dynamic memory management using new and delete operators, pointer to an object, this pointer, pointer related problems - dangling/wild pointers, null pointer assignment, memory leak and allocation failures. Constructors and Destructors: Need for constructors and destructors, copy constructor, dynamic constructors, explicit constructors, destructors, constructors and destructors with static members Operator Overloading and Type Conversion: Overloading operators, rules for overloading operators, Inheritance: Introduction, defining derived classes, forms of inheritance, ambiguity in multiple and multipath inheritance, overriding member functions, object composition and delegation, order of execution of constructors and destructors. Virtual functions & Polymorphism: Concept of binding - early binding and late binding, virtual functions, Exception Handling: exception handling mechanism, throwing mechanism, catching mechanism, rethrowing an exception, specifying exceptions. Templates and Generic Programming: Template concepts, Function templates, class templates, illustrative examples. Files: File streams, hierarchy of file stream classes, error handling during file operations, reading/writing of files, accessing records randomly, updating files.