Choose your language
C and C++ Course
From 4 to 360h of flexible workload

C and C++ Course

Master C and C++ from the ground up, starting with pointers and memory management and advancing to modern C++20 features, concurrency, and design patterns. This course gives you the technical depth that professional software engineers rely on every day. Whether you're targeting embedded systems, high-performance applications, or systems programming, you'll finish with real, production-ready skills.

What you will learn:

You will start with C fundamentals — syntax, control flow, functions, and file I/O — then move into pointers, dynamic memory allocation, and data structures. From there, you will transition into C++ and learn object-oriented programming, the Standard Template Library, and modern features introduced in C++11 through C++20. The course also covers build systems like CMake and Makefiles, debugging with GDB, unit testing with Google Test, and design patterns used in professional codebases. By the end, you will be equipped to write, test, and maintain complex C and C++ software at an industry level.

How you study in practice C and C++ Course

How you practise C and C++ Course

For companies looking to train their teams

With Elevify for businesses, the course includes exercises and examples tailored to your company and its specific needs.

Click here

Course content

8 Chapters39 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

C Programming Foundations

  • Lesson 1 • Control Flow and Loops

    Teaches if/else, switch, for, while, and do-while constructs. Enables learners to write programs with branching and repetition logic.

  • Lesson 2 • Variables, Data Types, and Operators

    Covers primitive types, variable declaration, and arithmetic/logical operators. Provides the building blocks for all C expressions.

  • Lesson 3 • Functions and Scope

    Defines function declaration, definition, parameters, and return values. Introduces local vs. global scope and the call stack.

  • Lesson 4 • Setting Up the Development Environment

    Install and configure a C compiler, editor, and build tools. Establishes the toolchain every subsequent chapter depends on.

  • Lesson 5 • Input and Output in C

    Covers printf, scanf, and formatted I/O for console interaction. Connects to real program usability and debugging output.

Chapter 2See details

Pointers and Memory Management

  • Lesson 1 • Arrays, Strings, and Pointers

    Explores the relationship between arrays, C strings, and pointer arithmetic. Reinforces pointer concepts through practical string manipulation.

  • Lesson 2 • Pointers and Functions

    Covers pass-by-pointer, function pointers, and returning pointers. Extends function knowledge from Chapter 1 to enable in-place modification.

  • Lesson 3 • Pointer Fundamentals

    Introduces address-of and dereference operators, pointer types, and NULL. Builds the conceptual model required for all advanced memory topics.

  • Lesson 4 • Dynamic Memory Allocation

    Teaches malloc, calloc, realloc, and free for heap management. Learners learn to allocate and release memory at runtime.

  • Lesson 5 • Common Memory Errors and Debugging

    Identifies dangling pointers, double-free, and out-of-bounds access. Equips learners with tools and strategies to diagnose memory bugs.

Chapter 3See details

Structured Data and File Handling

  • Lesson 1 • Unions and Enumerations

    Covers union memory sharing and enum-based named constants. Provides tools for memory-efficient type design and readable code.

  • Lesson 2 • Linked Lists and Dynamic Structures

    Builds singly and doubly linked lists using structs and pointers. Applies dynamic allocation from Chapter 2 to real data structure design.

  • Lesson 3 • Binary File I/O

    Teaches fread, fwrite, and fseek for binary data persistence. Enables efficient storage and retrieval of struct data.

  • Lesson 4 • Structs and User-Defined Types

    Defines struct syntax, member access, and nested structs. Enables grouping of related data into cohesive, reusable types.

  • Lesson 5 • Text File I/O

    Covers fopen, fgets, fputs, fprintf, and fscanf for text files. Connects console I/O skills to persistent data storage.

Chapter 4See details

C Preprocessor and Build Systems

  • Lesson 1 • Preprocessor Directives

    Covers #define, #include, #ifdef, and #pragma. Shows how the preprocessor transforms source before compilation.

  • Lesson 2 • Debugging and Profiling Tools

    Covers GDB for step-through debugging and gprof for profiling. Builds diagnostic skills applicable to all future C and C++ work.

  • Lesson 3 • Makefiles and Build Automation

    Introduces Makefile syntax, targets, dependencies, and variables. Automates compilation of multi-file projects efficiently.

  • Lesson 4 • Header Files and Modular Design

    Teaches splitting declarations into headers and definitions into source files. Establishes the pattern for all multi-file C projects.

Chapter 5See details

Introduction to C++ and OOP Concepts

  • Lesson 1 • Operator Overloading

    Teaches overloading arithmetic, comparison, and stream operators. Enables intuitive syntax for user-defined types.

  • Lesson 2 • Constructors and Object Lifecycle

    Explores copy constructors, move semantics, and destructor behavior. Prepares learners for resource-safe class design.

  • Lesson 3 • C++ Syntax Differences from C

    Highlights namespaces, references, bool type, and inline functions. Smooths the transition by mapping familiar C constructs to C++ equivalents.

  • Lesson 4 • Classes and Objects

    Defines class syntax, access specifiers, and member functions. Introduces the object as the central unit of C++ program design.

  • Lesson 5 • Encapsulation and Data Hiding

    Covers getter/setter patterns, const member functions, and friend classes. Enforces the principle of controlled access to object state.

Chapter 6See details

Inheritance, Polymorphism, and Abstraction

  • Lesson 1 • Virtual Functions and Polymorphism

    Introduces virtual keyword, vtable mechanics, and dynamic dispatch. Enables writing code that operates on base-class pointers polymorphically.

  • Lesson 2 • SOLID Principles in C++

    Applies single responsibility, open-closed, and Liskov substitution principles. Connects OOP mechanics to professional software design standards.

  • Lesson 3 • Abstract Classes and Interfaces

    Defines abstract classes via pure virtual functions and interface patterns. Teaches design contracts that derived classes must fulfill.

  • Lesson 4 • Inheritance Fundamentals

    Covers base and derived class syntax, access inheritance, and constructor chaining. Establishes the is-a relationship central to OOP design.

  • Lesson 5 • Multiple Inheritance and Virtual Base Classes

    Addresses multiple inheritance, diamond problem, and virtual base classes. Equips learners to handle complex hierarchies safely.

Chapter 7See details

C++ Standard Library and Templates

  • Lesson 1 • STL Algorithms and Iterators

    Applies sort, find, transform, and accumulate with iterator ranges. Replaces manual loops with expressive, tested library algorithms.

  • Lesson 2 • Smart Pointers and RAII

    Introduces unique_ptr, shared_ptr, and weak_ptr for automatic memory management. Applies RAII to eliminate manual delete calls.

  • Lesson 3 • Function and Class Templates

    Covers template syntax, type parameters, and template specialization. Enables writing type-independent, reusable functions and classes.

  • Lesson 4 • STL Associative Containers

    Covers map, set, unordered_map, and unordered_set with complexity guarantees. Enables fast lookup and unique-element management.

  • Lesson 5 • STL Sequence Containers

    Teaches vector, list, deque, and array with their trade-offs. Provides the primary tools for ordered data storage in C++.

Chapter 8See details

Modern C++ and Advanced Techniques

  • Lesson 1 • C++20 Features Overview

    Surveys concepts, ranges, coroutines, and modules introduced in C++20. Positions learners to adopt the latest standard in professional projects.

  • Lesson 2 • Compile-Time Programming

    Covers constexpr, if constexpr, and variadic templates for compile-time logic. Reduces runtime overhead through static computation.

  • Lesson 3 • Move Semantics and Perfect Forwarding

    Deepens understanding of rvalue references, std::move, and std::forward. Enables zero-cost resource transfer in performance-critical code.

  • Lesson 4 • Lambda Expressions and Functional Patterns

    Covers lambda syntax, capture lists, and use with STL algorithms. Enables concise, inline function objects for modern C++ idioms.

  • Lesson 5 • Concurrency with std::thread

    Introduces thread creation, mutexes, condition variables, and futures. Prepares learners to write safe multi-threaded C++ applications.

Certification
Certification

Your valid completion certificate

This course is for you:

  • Computer science students: wanting low-level programming skills beyond scripted languages.

  • Embedded systems hobbyists: building firmware and hardware projects requiring precise memory control.

  • Self-taught developers: filling critical gaps left by bootcamps focused on higher-level languages.

  • Game developers: seeking performance-critical programming knowledge for engine-level work.

  • IT professionals: transitioning into software engineering roles that demand systems-level expertise.

  • Electrical engineers: adding software depth to complement their hardware design background.

What our students say

Feedback from those who have already studied with us:

Your lessons are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to change platforms... I'm grateful for everything you do, I've already recommended you to other people...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the way videos are presented and transcribed, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top qualifications

FAQ

Who is Elevify? How does it work?

Do the courses have certificates?

Are the courses free?

What is the course workload?

What are the courses like?

How do the courses work?

What is the duration of the courses?

What is the cost or price of the courses?

What is an EAD or online course and how does it work?

PDF Course