Syllabus- Important Facts On C++
C++ is an extension of the C programming language, developed by Bjarne Stroustrup in the early 1980s. It was designed to add object-oriented programming (OOP) features to C while maintaining the efficiency and control that C provides.
Session 2 – Input & Output Operations:
- Cin & Cout object
- Compilation & Execution process
- Advantages of C++ over C
Session 4 – Functions in C++
- Function Declaration and Definition
- Function Prototypes
- Function Overloading
- Function Templates
- Lambda Expressions
- Default Arguments
- Call by value
- Call by reference
- Call by address
- Function overloading
- Passing default arguments inside function
- Inline function
Session 5 – Class concepts
- Structure vs Class
- Access specifiers: (Private, public, protected)
- Object creation
- Multiple object declaration
- Array of objects
- Size of object
- Empty class
- Local class
- Anonymous class
- Nested class
- Concrete class
- Private member function
Session 6 – Constructor
- Introduction to Constructors
- Types of Constructors
- Role and Importance of Constructors
- Default & Parameterized Constructor
- Implicit & explicit calling of Constructor
- Constructor overloading
- Constructor defined outside of class
- Copy Constructor
- Inline constructor
- Default arguments inside Constructor
- Difference between Constructor & Function
- Swallow & deep copy
Session 7 – Destructor
- Explicit calling of destructor
- Difference between Constructor & Destructor
- Pointer to pointer
- Void/Generic pointer
- Null pointer
- Dereferencing of pointer variable
- String pointer
- Pointer to function
- Function returning pointer
- Array of pointers
- Dynamic memory allocation
Session 8 – Static Keyword
- Introduction to Static Keyword
- Static Variables
- Static Functions
- Static Class Members
- Static Class
- Try, throw & catch block
- Specified throwing exception
- Rethrowing of exception
- Exception in Constructor & Destructor
- Exception in case of Inheritance
- Uncaught Exception
Session 9 – Member function defined outside of class
- Introduction to Member Functions Defined Outside of Class
- Syntax for Defining Member Functions Outside Class
- Inline function defined outside of class
- Accessing Private Members through Member Functions
- main() as member function
- overloading of main() function
- main() as Constructor & Destructor
- Private Constructor & Destructor
Session 10 – Const Keyword
- Const Class
- Constant data member
-
Mutable Keyword
- Constant member function
- Return type const & argument const type
- Bullet proof function
- Const object
- Anonymous object
- Local & Global object
- Const Cast
- Const Qualifiers
- Mutable Data Members and their Use
- Constexpr Keyword
- Const Method Overloading
- Const and Rvalue References
Session 11 – Macro
- Preprocessor directive
- File inclusion
- Macro constant
- Redefine macro
- Macro representation
- Function like macro/li>
- Object like macro
- Multiple line macro
- Self referential macro
- Cryptic programming
- Stringnization operator(#)
- Token pasting operator(##)
- Difference between Inline function & macro
- Static data member
- Static member function
Session 12 – Friend Keyword
- Friend without object passing
- Friend function
- Friend Class
- This pointer
- Friend Function and Data Access
- Private and Protected Members Access
- Friend Functions and Operator Overloading
- Friend Function vs Member Function
- Friend Classes and Inheritance
- Friend Functions in Template Classes
- Friend Function Limitations
- Friend Function and Encapsulation
- Using Friend Functions with Static Members
- Friend Functions and Multiple Inheritance
- Friend Function and Class Hierarchy
Session 13 – Operator overloading
- Unary operator overloading
- Binary operator overloading
- New & delete operator overloading
- Binary operator overloading using friend function
- Overloading Assignment Operator
- Overloading Comparison Operators
- Overloading Increment and Decrement Operators
Session 14 – Dynamic memory allocation
- New & delete keyword
- Pointer to object
- Pointer to data member
- Pointer to member function
- Pointer to constant
- Difference between pointer & Reference variable
Session 15 – Use of multiple classes
- Single Responsibility Principle
- Encapsulation
- Class Composition
- Class Inheritance
- Dependency Injection
- Class Relationships and Collaboration
- Design Patterns
Session 16 – Inheritance
- Types of Inheritance
- Access specifier/visibility mode
- Constructor & destructor in Inheritance
- Base and Derived Class Relationships
- Overriding Member Functions
- Virtual Functions and Polymorphism
- Multiple Inheritance
- Inheritance and Composition
- Diamond Problem in Multiple Inheritance
Session 17 – Virtual Keyword
- Virtual class
- Virtual function
- Pure virtual function
- Abstract class
- Object slicing
- Virtual destructor
- Virtual Table(VTable)
- Function overriding
- Static vs Dynamic binding
Session 18 – Type Conversion
- Basic to Class type
- Class type to Basic type
- Class type to Class type
- Implicit Conversion
- Explicit Conversion
- Conversion Operators
- Type Casting
- Static Cast vs Dynamic Cast
- Const Cast and Reinterpret Cast
Session 19 – Template/Generic Type
- Template function
- Template class
- Template overloading
- Function template defined outside of class
- Class template with overloaded operator
- Difference between Template & Macro
Session 20 – Exception Handling
- Types of Exception
- Try, Catch, and Throw
- Exception Propagation
- Custom Exception Classes
- Exception Handling Best Practices
- Standard Exception Hierarchy
Session 21 – RTTI
- Runtime typecasting
- Static_cast & dynamic_cast
- Typeid operator
- Type Identification with typeid
- RTTI and Inheritance
- RTTI and Polymorphism
Session 22 – Namespace
- Namespace creation
- Nesting of namespace
- Anonymous/Unnamed namespace
- Using Keyword
- Difference between namespace & class
- Namespace Aliasing
- Inline Namespace
Session 23 – STL(Standard Template Library)
- Container
- Iterator
- Algorithms
- Function Objects
- Associative Containers
- Sequence Containers
Session 24 – File Handling
- Class Hierarchy
- Streams
- File opening modes
- Read/write operations
- Use of append mode
- Errors handling during file operations
- Error handling functions
Session 25 – Command Line Arguments
- Argument counter
- Argument vector
- Environment pointer
- Use of atoi
Session 26 – Header file Creation
- Include Guards
- Forward Declarations
- Runtime typecasting
- Static_cast & dynamic_cast
- Typeid operator
Session 27 – RTTI
- Runtime typecasting
- Static_cast & dynamic_cast
- Typeid operator
- Type Identification with typeid
- RTTI and Polymorphism
Session 30 – Advanced Topics in VC++
- Object-Oriented Programming in VC++
- Advanced Multithreading Techniques
- Memory Management and Optimization