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 1 – Introduction to C++

  • What is C++ ?
  • Features of OOPS
  • Advantages of OOPS

Session 2 – Input & Output Operations:

  • Cin & Cout object
  • Compilation & Execution process
  • Advantages of C++ over C

Session 3 – Operators in C++

  • Typecast operator
  • Scope resolution operator(::)
  • Reference variable(&)

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 28 – Graphics

  • Graphics Programming
  • 2D Graphics Basics
  • 3D Graphics Basics

Session 29 – Introduction to VC++

  • Multithreading
  • Networking
  • Event handling

Session 30 – Advanced Topics in VC++

  • Object-Oriented Programming in VC++
  • Advanced Multithreading Techniques
  • Memory Management and Optimization