Object-Oriented Programming Concepts: Introduction, comparison between procedural programming paradigm and object-oriented programming paradigm
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
Classes and Objects: Specifying a class, creating class objects, accessing class members
Access specifiers, static members, use of const keyword, friends of a class, empty classes, nested classes
Local classes, abstract classes, container classes, bit fields and classes
Inheritance: Introduction, defining derived classes, forms of inheritance, ambiguity in multiple and multipath inheritance
Virtual base class, object slicing
Overriding member functions, object composition and delegation, order of execution of constructors and destructors.
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, initializer listsconstructors and destructors with static members, initializer lists
Operator Overloading and Type Conversion: Overloading operators, rules for overloading operators
Overloading of various operators, type conversion—basic type to class type
Class type to basic type, class type to another class type
Virtual functions & Polymorphism: Concept of Binding—Early Binding and late Binding
Virtual functions, pure virtual functions
Abstract classes, virtual destructors
Exception Handling: Review of traditional error handling, basics of 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