CoursesProgramming
ProgrammingBeginnerSelf-paced
C++ Programming Essentials
This course provides a comprehensive introduction to C++ programming, covering fundamental concepts, object-oriented programming, generic programming, and the standard library. Students will learn to write efficient and effective C++ code. By the end of the course, learners will have a solid understanding of C++ and be able to apply it in various programming contexts.
140chapters
283modules
604lessons
154quizzes
Syllabus
140 chapters, 283 modules, 758 lessons and quizzes.
01Getting Started1 modules · 2 lessons
02Building Your First C++ Program3 modules · 9 lessons
C++ Program Fundamentals
Output and Input/Output Operators
03Understanding Functions in C++2 modules · 6 lessons
Function Basics
Code Comprehensibility and Function Overloading
04Understanding Types, Variables, and Arithmetic Operations4 modules · 11 lessons
Variables and Types
Arithmetic Operations and Type Conversions
Initializing Variables and Auto Keyword
Compound Assignment Operators
05Understanding Variable Scope and Lifetime2 modules · 6 lessons
Variable Scopes in C++
06Understanding Constants in C++2 modules · 6 lessons
Types of Constants
07Understanding Pointers, Arrays, and References4 modules · 11 lessons
Array and Pointer Basics
Using Arrays and Pointers in Loops
References and Const References
08Writing Testable Code in C++2 modules · 5 lessons
Conditional Statements for User Input
Looping Constructs for Repeated Actions
09Best Practices for the Basics of C++3 modules · 9 lessons
Writing Effective Functions
Code Readability and Maintainability
10C++ Types and Abstraction Mechanisms1 modules · 3 lessons
11Defining and Using Structures2 modules · 5 lessons
Defining and Initializing Structures
12Defining Classes in C++2 modules · 5 lessons
Class Basics
13Understanding Unions in C++2 modules · 6 lessons
Introduction to Unions
14Understanding Enumerations in C++2 modules · 5 lessons
Introduction to Enumerations
15Best Practices for User-Defined Types3 modules · 7 lessons
Organizing Data and Code
Initialization and Enumerations
Avoiding Common Pitfalls
16Modularizing Code through Separate Compilation1 modules · 1 lessons
Understanding Separate Compilation
17Managing Complexity in C++ Programs1 modules · 3 lessons
18Organizing Code with Separate Compilation3 modules · 6 lessons
Understanding Separate Compilation
Implementing Separate Compilation
Modularity through Separate Compilation
19Organizing Code with Namespaces2 modules · 6 lessons
Understanding Namespaces
20Understanding Namespaces and Using Directives1 modules · 3 lessons
21Error Handling Fundamentals2 modules · 4 lessons
Role of Type System in Error Prevention
Developing an Error Handling Strategy
22Handling Runtime Errors with Exceptions3 modules · 5 lessons
Understanding Exceptions
Catching and Handling Exceptions
Best Practices for Exception Handling
23Understanding Class Invariants and Exception Handling2 modules · 6 lessons
Class Invariants and Preconditions
24Compile-Time Error Checking3 modules · 5 lessons
Understanding Static Assertions
Advanced Topics in Static Assertions
Contrasting Static Assertions and Exceptions
25Best Practices for Modularity in C++3 modules · 12 lessons
Organizing Code and Interfaces
Error Handling Strategies
26Abstraction and Resource Management in C++2 modules · 4 lessons
Understanding User-Defined Types
Representing Computations
27Understanding Concrete Types in C++2 modules · 4 lessons
Characteristics of Concrete Types
Benefits and Usage of Concrete Types
28Creating User-Defined Arithmetic Types3 modules · 10 lessons
Defining a Complex Number Class
Operator Overloading for Complex Numbers
29Containers and Resource Management1 modules · 4 lessons
30Container Initialization Techniques1 modules · 4 lessons
31Working with Abstract Types4 modules · 8 lessons
Defining Abstract Types
Using Abstract Types
Implementing Abstract Types
Virtual Destructors
32Class Hierarchies and Inheritance4 modules · 6 lessons
Introduction to Class Hierarchies
Abstract Classes and Interfaces
Inheritance and Polymorphism
Managing Resources in Class Hierarchies
33Benefits of Class Hierarchies2 modules · 8 lessons
Types of Inheritance Benefits
Using Class Hierarchies in Practice
- LessonAllocating and Accessing Objects in HierarchiesEnroll to open
- LessonReading Shapes from Input StreamsEnroll to open
- LessonManaging Shapes in a ProgramEnroll to open
- LessonResource Management with Virtual DestructorsEnroll to open
- LessonClass Hierarchies Practice: Working With Shapes You Have Not NamedEnroll to open
34Navigating Class Hierarchies1 modules · 5 lessons
35Preventing Resource Leaks in C++1 modules · 3 lessons
36Copy and Move Operations in C++2 modules · 4 lessons
37Copying Containers and Resource Handles2 modules · 6 lessons
Understanding the Need for Custom Copy Semantics
Implementing Copy Constructor and Copy Assignment
38Efficient Resource Transfer with Move Semantics1 modules · 5 lessons
Understanding Move Semantics
39Mastering Object Lifecycle Operations3 modules · 6 lessons
Understanding Special Member Functions
Controlling Implicit Conversions
Default Implementations and Resource Management
40Resource Management for Classes2 modules · 8 lessons
Resource Management Fundamentals
41Suppressing Default Operations in C++1 modules · 3 lessons
Understanding the Need to Suppress Default Operations
42C++ Class Design Best Practices3 modules · 10 lessons
Designing Classes
Resource Management and Class Hierarchies
43Understanding Templates in C++1 modules · 3 lessons
44Generalizing Types with Templates1 modules · 2 lessons
Introduction to Parameterized Types
45Function Templates in C++1 modules · 3 lessons
46Generic Programming with Templates2 modules · 6 lessons
Introduction to Generic Programming
47Function Objects and Lambda Expressions3 modules · 8 lessons
Introduction to Function Objects
Lambda Expressions
Applying Function Objects and Lambda Expressions
48Working with Variable Numbers of Arguments1 modules · 4 lessons
49Type Aliases and Template Aliasing2 modules · 6 lessons
Understanding Type Aliases
Template Aliases and Container Value Types
50Understanding Template Compilation2 modules · 4 lessons
Template Type Checking
51Best Practices for Template Programming4 modules · 10 lessons
Template Design Principles
Advanced Template Concepts
Template Compilation and Limitations
Additional Template Features
52C++ Standard Library Essentials1 modules · 3 lessons
Understanding Standard Library Components
53Understanding C++ Standard Library Basics2 modules · 4 lessons
C++ Standard Library Overview
Best Practices for Using C++ Standard Library
54Libraries and Standard Library Facilities2 modules · 4 lessons
55C++ Standard Library Components1 modules · 3 lessons
56Using the C++ Standard Library2 modules · 5 lessons
Accessing Standard Library Facilities
Overview of Standard Library Headers
57Best Practices for Using C++ Libraries2 modules · 5 lessons
Using C++ Libraries Effectively
Practical Considerations for Using Standard Library Facilities
58Working with Strings in C++1 modules · 3 lessons
59Text Manipulation and Regular Expressions Overview2 modules · 3 lessons
Introduction to Text Manipulation
60String Implementation Details1 modules · 3 lessons
61Working with Regular Expressions in C++2 modules · 4 lessons
Introduction to Regular Expressions
Regular Expression Functions and Iterators
62Regular Expression Searching1 modules · 5 lessons
Searching with Regular Expressions
63Understanding Regular Expression Notation2 modules · 8 lessons
Regular Expression Basics
Advanced Regular Expression Concepts
64Using Iterators with Regular Expressions1 modules · 3 lessons
65Best Practices for Strings and Regular Expressions2 modules · 7 lessons
String Operations Best Practices
66Introduction to C++ I/O Streams1 modules · 3 lessons
67Output Operations in C++1 modules · 4 lessons
68Reading Input in C++2 modules · 6 lessons
Input Basics
69Understanding I/O Stream State2 modules · 5 lessons
70Custom Input/Output for User-Defined Types2 modules · 4 lessons
Defining Custom Output Operations
71Output Formatting in C++3 modules · 5 lessons
Integer Output Formatting
Floating-Point Output Formatting
Persistent Formatting Effects
72Working with File Streams in C++1 modules · 4 lessons
73Working with String Streams3 modules · 6 lessons
Introduction to String Streams
Using String Streams
Template Argument Deduction
74Input/Output Best Practices and Container Overview2 modules · 10 lessons
Input/Output Best Practices
- LessonType-Safe Input/Output OperationsEnroll to open
- LessonDefining Input/Output Operators for User-Defined TypesEnroll to open
- LessonChoosing the Right Output StreamEnroll to open
- LessonInput into StringsEnroll to open
- LessonHandling Input/Output ErrorsEnroll to open
- QuizInput/Output Best Practices QuizEnroll to open
Container Overview
75Containers and Data Collections1 modules · 4 lessons
76Working with Vectors3 modules · 8 lessons
Vector Basics
Manipulating Vectors
Vector Copying and Moving
77Vector Elements and Their Types1 modules · 3 lessons
78Vector Range Checking and Exception Handling2 modules · 6 lessons
Understanding Range Checking in Vectors
79Working with Linked Lists4 modules · 6 lessons
Introduction to Linked Lists
Searching in Linked Lists
Modifying Linked Lists
Choosing Between Vectors and Linked Lists
80Using Maps for Efficient Lookup2 modules · 5 lessons
81Using Unordered Maps for Efficient Lookup2 modules · 5 lessons
Introduction to Unordered Maps
82Standard Library Containers Overview2 modules · 5 lessons
Container Types and Characteristics
Choosing the Right Container
83STL Container Best Practices3 modules · 9 lessons
Choosing the Right Container
Container Operations and Performance
Associative Containers and Hash Functions
84Using Containers with Algorithms1 modules · 3 lessons
Introduction to Containers and Algorithms
85Working with Iterators4 modules · 9 lessons
Introduction to Iterators
Generic Programming with Iterators
Finding Elements with Iterators
Separation of Algorithms and Containers
86Understanding Iterator Types1 modules · 4 lessons
87Working with Stream Iterators4 modules · 5 lessons
Introduction to Stream Iterators
Using Stream Iterators with Output Streams
Using Stream Iterators with Input Streams
Stream Iterators with Algorithms
88Using Predicates with Algorithms1 modules · 4 lessons
89Understanding Algorithms in C++3 modules · 6 lessons
Algorithm Fundamentals
Standard Library Algorithms
Algorithm Characteristics and Limitations
90Simplifying Algorithm Applications to Containers1 modules · 4 lessons
91Best Practices for Using STL Algorithms3 modules · 10 lessons
Understanding STL Algorithm Fundamentals
Using STL Algorithms Effectively
- LessonModifying Sequences with STL AlgorithmsEnroll to open
- LessonPreferring STL Algorithms over Hand-Crafted LoopsEnroll to open
- LessonUsing Predicates and Function ObjectsEnroll to open
- LessonSimplifying Algorithm UsageEnroll to open
- LessonUsing STL Algorithms Effectively: Fixing Common MisconceptionsEnroll to open
Additional C++ Standard Library Components
92Understanding Type Functions in C++3 modules · 6 lessons
Type Functions Overview
Key Type Functions
93Utility Components in C++1 modules · 2 lessons
Understanding Utility Components
94Resource Management Utilities1 modules · 3 lessons
95Smart Pointers for Resource Management1 modules · 6 lessons
Understanding Smart Pointers
- LessonIntroduction to Smart PointersEnroll to open
- LessonUsing unique_ptr: Letting an Object Clean Up After ItselfEnroll to open
- LessonUsing shared_ptr: Sharing Ownership Without Losing Track of LifetimeEnroll to open
- LessonCreating Smart PointersEnroll to open
- LessonChoosing the Right Smart PointerEnroll to open
- QuizSmart Pointers QuizEnroll to open
96Understanding Specialized Containers in C++4 modules · 7 lessons
Introduction to Specialized Containers
Types of Specialized Containers
Characteristics of Specialized Containers
Design Trade-offs in Specialized Containers
97Working with Fixed-Size Sequences using array2 modules · 7 lessons
Defining and Initializing array
Using array with C-Style Functions and Comparing with Other Containers
98Working with Bitsets5 modules · 6 lessons
Introduction to Bitsets
Initializing Bitsets
Bitset Operations
Converting Bitsets
99Working with Pairs and Tuples2 modules · 6 lessons
100Measuring Time in C++2 modules · 5 lessons
Understanding Time Measurement
Best Practices for Time Measurement
101Function Adaptors and Argument Binding1 modules · 3 lessons
102Creating Function Objects with bind()4 modules · 7 lessons
Introduction to bind()
Using Placeholders with bind()
Binding Overloaded Functions
Working with bind() Return Types
103Function Adaptors and Objects2 modules · 6 lessons
Using mem_fn() for Non-Member Function Calls
104Compile-Time Type Functions3 modules · 5 lessons
Introduction to Type Functions
Standard Library Type Functions
Metaprogramming with Type Functions
105Understanding Iterator Traits and Tag Dispatch2 modules · 6 lessons
Iterator Traits and Type Functions
106Understanding Type Predicates in C++2 modules · 4 lessons
Introduction to Type Predicates
Best Practices for Type Predicates
107C++ Standard Library Best Practices3 modules · 9 lessons
Resource Management Best Practices
Standard Library Containers and Utilities
Function Objects and Time Measurement
108Numeric Computation in C++1 modules · 3 lessons
109C++ Mathematical Functions Overview3 modules · 6 lessons
Standard Mathematical Functions
Error Handling in Mathematical Functions
Additional Mathematical Functions
110Numerical Algorithms in C++3 modules · 6 lessons
Introduction to Numerical Algorithms
Accumulate Algorithm
111Working with Complex Numbers in C++2 modules · 4 lessons
Understanding the Complex Number Template
112Generating Random Numbers3 modules · 7 lessons
Random Number Generation Basics
Using Random Number Generators
113Vector Arithmetic Operations2 modules · 5 lessons
114Understanding Numeric Limits in C++1 modules · 3 lessons
115Best Practices for Numerical Computations2 modules · 11 lessons
Numerical Computation Guidelines
- LessonApproaching Numerical ProblemsEnroll to open
- LessonUsing Libraries for Numerical ComputationsEnroll to open
- LessonNumerical Algorithms: Reaching for Built-In Sequence OperationsEnroll to open
- LessonComplex Arithmetic OperationsEnroll to open
- LessonRandom Number GenerationEnroll to open
- LessonChoosing the Right Numerical ContainerEnroll to open
- LessonUnderstanding Numeric Type PropertiesEnroll to open
- QuizNumerical Computations Best Practices QuizEnroll to open
116Concurrency Fundamentals1 modules · 3 lessons
117Concurrent Programming with Tasks and Threads2 modules · 6 lessons
Introduction to Tasks and Threads
Best Practices for Concurrent Programming
118Passing Data to Concurrent Tasks1 modules · 4 lessons
119Returning Results from Tasks1 modules · 4 lessons
120Synchronizing Access to Shared Data3 modules · 7 lessons
Mutexes and Locks
Avoiding Deadlocks
Sharing Data vs Copying
121Waiting for External Events in Multithreading2 modules · 4 lessons
Waiting for Time to Pass
Using Condition Variables to Wait for Events
122Task Communication in C++1 modules · 4 lessons
123Transferring Values between Tasks1 modules · 5 lessons
124Using packaged_task for Concurrent Computations2 modules · 6 lessons
Introduction to packaged_task
125Asynchronous Task Execution with async()2 modules · 5 lessons
Introduction to async()
Understanding async() Limitations and Use Cases
126Concurrency Best Practices and Guidelines3 modules · 9 lessons
Concurrency Fundamentals
Thread and Mutex Management
127The Origins of C++1 modules · 4 lessons
128C++ Evolution and Standardization1 modules · 4 lessons
129The Origins and Early Development of C++3 modules · 9 lessons
Design Goals and Initial Development
Evolution and Key Features
- LessonAdding Virtual Functions and Operator OverloadingEnroll to open
- LessonTemplates, Exception Handling, and Multiple InheritanceEnroll to open
- LessonLibrary Development: How the C++ Standard Library Took ShapeEnroll to open
- LessonC++ Evolution Practice: Testing Beliefs About Early C++ FeaturesEnroll to open
C++ Name Origin and Influences
130Understanding Virtual Functions in C++1 modules · 3 lessons
131Overriding Virtual Functions1 modules · 3 lessons
132Evolution of C++ Standards2 modules · 6 lessons
History of C++ Standardization
133C++11 Extensions and Improvements1 modules · 1 lessons
Overview of C++11 Extensions
134C++11 Language Features3 modules · 10 lessons
Initialization and Type Deduction
Control Flow and Constants
135C++11 Standard Library Enhancements2 modules · 7 lessons
New Components in C++11 Standard Library
136Understanding Deprecated Features in C++2 modules · 6 lessons
Deprecated Features Overview
Specific Deprecated Features
137Type Casting in C++3 modules · 7 lessons
Named Casts
Best Practices for Type Casting
Hexadecimal Integers
138C++ and C Compatibility1 modules · 2 lessons
Understanding C++ and C Compatibility
139C and C++: Understanding their Relationship2 modules · 6 lessons
Relationship Between C and C++
140C and C++ Compatibility Issues1 modules · 6 lessons
Common Issues When Converting C Code to C++
Start C++ Programming Essentials today.
Listed at ₹8,999. Free for you right now.
C++ Programming Essentials