Complete C++ Course

Chapter 1: Introduction to C++
  • Lesson 1: What is C++?
  • Lesson 2: History of C++
  • Lesson 3: C++ Applications
  • Lesson 4: C++ Environment Setup
  • Lesson 5: Writing Your First C++ Program
  • Lesson 6: Introduction to C++ Syntax
  • Lesson 7: Basic C++ Compiler and IDE Setup
Chapter 2: Variables and Data Types
  • Lesson 1: What are Variables?
  • Lesson 2: Declaring Variables in C++
  • Lesson 3: Reserved Keywords
  • Lesson 4: Basic Data Types: int, float, char, etc.
  • Lesson 5: Modifiers: signed, unsigned, long, short
  • Lesson 6: Declaring Constants (const and constexpr)
  • Lesson 7: Type Deduction with auto keyword
  • Lesson 8: The val Keyword in Recent C++ Versions
Chapter 3: Operators in C++
  • Lesson 1: Arithmetic Operators
  • Lesson 2: Relational Operators
  • Lesson 3: Logical Operators
  • Lesson 4: Bitwise Operators
  • Lesson 5: Assignment Operators
  • Lesson 6: Increment and Decrement Operators
  • Lesson 7: Conditional (Ternary) Operator
  • Lesson 8: Type-Casting Operators
Chapter 4: Control Structures
  • Lesson 1: Introduction to Control Flow
  • Lesson 2: if, else, and else-if Statements
  • Lesson 3: switch-case Statement
  • Lesson 4: Loops: for, while, and do-while
  • Lesson 5: Break and Continue Statements
  • Lesson 6: goto Statement (Discouraged)
  • Lesson 7: C++14 and Later: Range-based for Loops
  • Lesson 8: Foreach Loop (C++11 and later)
Chapter 5: Functions in C++
  • Lesson 1: What is a Function?
  • Lesson 2: Function Declaration, Definition, and Call
  • Lesson 3: Function Parameters: Pass-by-value vs Pass-by-reference
  • Lesson 4: Function Overloading
  • Lesson 5: Default Arguments in Functions
  • Lesson 6: Inline Functions
  • Lesson 7: Lambda Functions (C++11 and later)
  • Lesson 8: Function Templates
  • Lesson 9: Recursive Functions
Chapter 6: Arrays and Strings
  • Lesson 1: Declaring Arrays
  • Lesson 2: Array Initialization
  • Lesson 3: Multidimensional Arrays
  • Lesson 4: Arrays vs Pointers
  • Lesson 5: Passing Arrays to Functions
  • Lesson 6: Returning Arrays from Functions
  • Lesson 7: Pointer to an Array
  • Lesson 8: String Handling in C++
  • Lesson 9: C-strings vs C++ String Class
  • Lesson 10: Modern C++: std::string Class
  • Lesson 11: String Manipulation with Standard Library Functions
Chapter 7: Structure & Union in C++
  • Lesson 1: What are Structure?
  • Lesson 2: What are Unions?
  • Lesson 3: Structure Declaration and Initialization
  • Lesson 4: Union Declaration and Initialization
  • Lesson 5: Unions vs Structures
  • Lesson 6: Practical Applications of Unions and Structures
Chapter 8: Pointers and References
  • Lesson 1: Introduction to Pointers
  • Lesson 2: Pointer Arithmetic
  • Lesson 3: Pointers and Arrays
  • Lesson 4: Wild Pointers and Null Pointers
  • Lesson 5: Dynamic Memory Allocation: new and delete
  • Lesson 6: Dereferencing Pointers
  • Lesson 7: Modifying Pointers
  • Lesson 8: Pointers to Functions
  • Lesson 9: References vs Pointers
  • Lesson 10: Smart Pointers (C++11 and later)
Chapter 9: Object-Oriented Programming (OOP) Concepts
  • Lesson 1: Introduction to OOP
  • Lesson 2: Classes and Objects
  • Lesson 3: Constructor and Destructor
  • Lesson 4: Member Functions and Data Members
  • Lesson 5: Access Specifiers: public, private, protected
  • Lesson 6: Static Members and Functions
  • Lesson 7: Friend Functions and Classes
Chapter 10: Inheritance in C++
  • Lesson 1: What is Inheritance?
  • Lesson 2: Base and Derived Classes
  • Lesson 3: Constructor and Destructor in Inheritance
  • Lesson 4: Single Inheritance
  • Lesson 5: Multiple Inheritance
  • Lesson 6: Virtual Inheritance
  • Lesson 7: Accessing Base Class Members
Chapter 11: Polymorphism in C++
  • Lesson 1: What is Polymorphism?
  • Lesson 2: Function Overriding
  • Lesson 3: Virtual Functions
  • Lesson 4: Pure Virtual Functions and Abstract Classes
  • Lesson 5: Runtime Polymorphism (Dynamic Binding)
  • Lesson 6: Operator Overloading
Chapter 12: Encapsulation in C++
  • Lesson 1: What is Encapsulation?
  • Lesson 2: Accessor and Mutator Functions
  • Lesson 3: Data Hiding
  • Lesson 4: Getter and Setter Methods
  • Lesson 5: Example of Encapsulation in Real-World Systems
Chapter 13: Enumerations and Enum Classes in C++
  • Lesson 1: Introduction to Enumerations
  • Lesson 2: Declaring and Defining an Enumeration
  • Lesson 3: Default Values and Assigning Values to Enumerators
  • Lesson 4: Scoped Enumerations (Enum Class)
  • Lesson 5: Strong Typing with enum class
  • Lesson 6: Scoped Namespaces in enum class
  • Lesson 7: Enumerator Namespaces and Aliases
  • Lesson 8: Iterating Over Enum Values
  • Lesson 9: Enum Flags and Bitwise Operations
  • Lesson 10: Enum with std::map or std::unordered_map
  • Lesson 11: Enum with Switch-Case Statements
  • Lesson 12: Use Cases for Enumerations and enum class
  • Lesson 13: Best Practices for Enumerations and Enum Classes
Chapter 14: C++ Templates
  • Lesson 1: Introduction to Templates
  • Lesson 2: Function Templates
  • Lesson 3: Class Templates
  • Lesson 4: Template Specialization
  • Lesson 5: Variadic Templates (C++11 and later)
  • Lesson 6: Template Metaprogramming
Chapter 15: Exception Handling in C++
  • Lesson 1: Introduction to Exceptions
  • Lesson 2: try, catch, and throw Keywords
  • Lesson 3: Exception Hierarchy and Inheritance
  • Lesson 4: Custom Exception Classes
  • Lesson 5: Exception Safety
  • Lesson 6: noexcept Specifier
  • Lesson 7: Modern Exception Handling (C++11 and beyond)
Chapter 1: Standard Template Library (STL) Basics
  • Lesson 1: Introduction to STL
  • Lesson 2: Overview of STL Components
  • Lesson 3: Containers: vector, list, map, set, etc.
  • Lesson 4: Iterators in STL
  • Lesson 5: STL Algorithms
  • Lesson 6: Allocators in STL
Chapter 2: Date and Time in C++
  • Lesson 1: Introduction to Date and Time in C++
  • Lesson 2: The 'chrono' Library: Basics
  • Lesson 3: Working with Time Durations
  • Lesson 4: Getting the Current Date and Time
  • Lesson 5: Time Zones and Local Time
  • Lesson 6: Formatting Date and Time (C++20 and later)
  • Lesson 7: Converting Between Different Time Points
  • Lesson 8: Time Calculations and Differences
  • Lesson 9: Date and Time Manipulation in C++98/03 (Without 'chrono')
  • Lesson 10: Date and Time Libraries in Modern C++
  • Lesson 11: Time Performance and Optimization
  • Lesson 12: Best Practices for Using Date and Time in C++
Chapter 3: C++11 and Later Features
  • Lesson 1: Overview of C++11 Features
  • Lesson 2: nullptr
  • Lesson 3: Automatic Type Deduction with auto keyword
  • Lesson 4: Range-based for Loop
  • Lesson 5: Lambda Expressions
  • Lesson 6: Smart Pointers (unique_ptr, shared_ptr, weak_ptr)
  • Lesson 7: rvalue References and Move Semantics
  • Lesson 8: Threading and Concurrency
Chapter 4: Modern C++ Features
(C++14, C++17, C++20, C++23)
  • Lesson 1: C++14 Features
  • Lesson 2: C++17 Features
  • Lesson 3: C++20 Features
  • Lesson 4: C++23 Features
  • Lesson 5: Concepts (C++20)
  • Lesson 6: Ranges Library (C++20)
  • Lesson 7: Coroutines (C++20)
  • Lesson 8: Modules (C++20 and beyond)
Chapter 5: Advanced C++ Concepts
  • Lesson 1: Move Semantics and Move Constructors
  • Lesson 2: Copy Elision and Return Value Optimization (RVO)
  • Lesson 3: Memory Management in C++
  • Lesson 4: Memory Leaks and Preventing Them
  • Lesson 5: RAII (Resource Acquisition Is Initialization)
  • Lesson 6: C++ Memory Model and Atomics
Chapter 6: Multithreading and Concurrency in C++
  • Lesson 1: Introduction to Multithreading
  • Lesson 2: Thread Library in C++11
  • Lesson 3: std::thread and Thread Creation
  • Lesson 4: Synchronization: Mutexes, Locks, and Condition Variables
  • Lesson 5: Atomic Operations
  • Lesson 6: Parallel Algorithms (C++17 and beyond)
Chapter 7: File I/O in C++
  • Lesson 1: File Handling Basics
  • Lesson 2: Reading from and Writing to Files
  • Lesson 3: Stream Classes and Objects
  • Lesson 4: Binary Files
  • Lesson 5: Error Handling in File I/O
  • Lesson 6: File Pointers and Seek
Chapter 8: C++ and Networking
  • Lesson 1: Introduction to Networking in C++
  • Lesson 2: Using Sockets in C++
  • Lesson 3: TCP/UDP Communication
  • Lesson 4: Multithreading in Networked Programs
Chapter 9: C++ Design Patterns
  • Lesson 1: What are Design Patterns?
  • Lesson 2: Creational Patterns: Singleton, Factory Method, Abstract Factory, Builder, Prototype
  • Lesson 3: Structural Patterns: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
  • Lesson 4: Behavioral Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
Chapter 10: Signal Handling
  • Lesson 1: Introduction to Signals in C++
  • Lesson 2: Signal Types and Common Signals
  • Lesson 3: Signal Handlers and signal() Function
  • Lesson 4: Signal Masking and Blocking Signals
  • Lesson 5: Handling Signals Safely
  • Lesson 6: C++17 and Later: std::signal and std::raise
Chapter 11: The C++ Preprocessor
  • Lesson 1: Introduction to Preprocessor Directives
  • Lesson 2: #define and #undef Directives
  • Lesson 3: Conditional Compilation: #if, #ifdef, #ifndef, etc.
  • Lesson 4: File Inclusion: #include
  • Lesson 5: Macro Functions
  • Lesson 6: Preprocessor Tokens and Macro Expansion
  • Lesson 7: Inline Functions vs Macros
  • Lesson 8: #pragma Directive
Chapter 12: Creating a C++ Library (Part 1)
  • Lesson 1: Introduction to C++ Libraries
  • Lesson 2: Static vs Dynamic Libraries
  • Lesson 3: Structuring Library Code
  • Lesson 4: Header Files and Source Files
  • Lesson 5: Compiling and Linking a Static Library
Chapter 13: Creating a C++ Library (Part 2)
  • Lesson 1: Creating Dynamic Libraries (Shared Libraries)
  • Lesson 2: Using dlopen() and dlsym()
  • Lesson 3: Handling Library Dependencies
  • Lesson 4: Packaging and Distributing C++ Libraries
  • Lesson 5: Example: Writing, Compiling, and Using a Library
Chapter 14: C++ Debugging and Testing
  • Lesson 1: Introduction to Debugging Techniques
  • Lesson 2: Using GDB for Debugging
  • Lesson 3: Unit Testing in C++
  • Lesson 4: Test-Driven Development (TDD)
  • Lesson 5: Using Catch2 and Google Test
Course Duration: about 100+20 hours

The online class is held via Skype (or Zoom or Microsoft Teams) and the cost per hour of tutoring is only $15. At the end of this long course, you will master all the required basic and advanced concepts of C++ and we will develop a real-world application together for about 20 hours which fully prepares you to find a job as a C++ developer.
To book this class, message or call my telegram or WhatsApp:
+98 (912) 490-8372 or +98 (935) 490-8372
You can also send email to me:
abolfazl.mohammadijoo@gmail.com

Your Message






























Introductory Course of C++


Chapter 1: Introduction to C++
Chapter 2: Variables and Data Types
Chapter 3: Operators in C++
Chapter 4: Control Structures
Chapter 5: Functions in C++
Chapter 6: Arrays and Strings
Chapter 7: Structure & Union in C++
Chapter 8: Pointers and References
Chapter 9: Object-Oriented Programming (OOP) Concepts
Chapter 10: Inheritance in C++
Chapter 11: Polymorphism in C++
Chapter 12: Encapsulation in C++
Chapter 13: Enumerations and Enum Classes in C++
Chapter 14: C++ Templates
Chapter 15: Exception Handling in C++

Advanced Course of C++


Chapter 1: Standard Template Library (STL) Basics
Chapter 2: Date and Time in C++
Chapter 3: C++11 and Later Features
Chapter 4: Modern C++ Features
(C++14, C++17, C++20, C++23)
Chapter 5: Advanced C++ Concepts
Chapter 6: Multithreading and Concurrency in C++
Chapter 7: File I/O in C++
Chapter 8: C++ and Networking
Chapter 9: C++ Design Patterns
Chapter 10: Signal Handling
Chapter 11: The C++ Preprocessor
Chapter 12: Creating a C++ Library (Part 1)
Chapter 13: Creating a C++ Library (Part 2)
Chapter 14: C++ Debugging and Testing
Course Duration: about 100+20 hours

The online class is held via Skype (or Zoom or Microsoft Teams) and the cost per hour of tutoring is only $15. At the end of this long course, you will master all the required basic and advanced concepts of C++ and we will develop a real-world application together for about 20 hours which fully prepares you to find a job as a C++ developer.
To book this class, message or call my telegram or WhatsApp:
+98 (912) 490-8372 or +98 (935) 490-8372
You can also send email to me:
abolfazl.mohammadijoo@gmail.com

Your Message