1. C++ Introduction:
- Programming language classification.
- Difference between procedure oriented and object oriented programming.
- History of C++.
- C++ specifications and keywords.
- Flow of execution.
- Data type and its type, type modifiers and qualifiers.
- structure in C/C++, access specifier.
2. Class and Objects:
- Class implementation and reared oops concepts.
- Object and its characteristics.
- Empty class and its use.
3. Namespace:
- Storage classes, scope and life time
- Namespace concept and its use
- Console streams in C/C++ and its use.
4. Pointer, references, this pointer and default arguments:
- pointer basics, dereferencing and related concepts.
- this pointer.
- constructor and its member initialiser list
- l-value and r-value.
- const in C/C++, complicated pointer declaration using const.
- const data member, member function and object, use of mutable in C++.
- default arguments
5. Data security using getter & setter and Exception handling:
- macro versus inline function.
- string type in C++.
- use of getter and setter in programming.
- Exception handling.
- Data security( concept and implementation ).
6. Oops Concepts:
- OOPS theory and its advantages.
- Software development life cycle
- Phases in object oriented software development.
- Introduction to UML.
- Major and minor pillars of oops.
- Abstraction, Encapsulation and modularity with implementation.
- Function overloading, name mangling & mangled name.
7. Dynamic memory allocation, destructor and copy constructor:
- dynamic memory allocation in C and C++.
- dangling pointer and memory leakage.
- destructor.
- Shallow copy and deep copy.
- Copy constructor.
8. Friend function and operator overloading:
- Friend function and class.
- Nested and local class.
- Operator overloading concept, use and its limitations.
- Overloading arithmetic, relational, shorthand and unary operator.
- Overloading insertion( << ) and extraction operator( >> )
- Overloading =,[],() and -> operator
- Function object and Smart pointer.
- Conversion function.
9. How to share data between objects:
- Static concept in C.
- Static data member and member function.
- Singleton class and factory design pattern.
- Anonymous class and object.
10. Inheritance and polymorphism:
- Hierarchy and its type.
- Association, composition & aggregation, UML notations and implementation.
- Inheritance basics, mode of inheritance and type of inheritance.
- Diamond problem.
- Polymorphism concept & its use, type of polymorphism.
- Object slicing, upcasting and down casting.
11. Virtual function, Abstract class and interface:
- Virtual function and function overriding.
- Early binding and late binding using C and C++.
- Virtual function under the hood( v-table and v-ptr )
- Pure virtual function, abstract class and interface.
- Interface inheritance versus implementation inheritance.
- Overloading versus overriding.
12. Advanced C++:
- RTTI
- Advanced typecasting operators.
- Template( Function template & class template )
- STL( algorithms, container and iterator ).
- Manipulators, streams and file handling.