What you'll learn

  • Understand in depth how pointers work

  • Understand the applications of pointers

  • Understand efficient implementation of basic data structures

  • Understand how callback mechanism works through pointers and objects

Course curriculum

  • 1

    Start here

  • 2

    Static Arrays

  • 3

    Dynamic Arrays

    • Source Files

    • Introduction

    • Constructors

    • Accessors

    • Modifiers

    • Element Removal

    • Copy/Move Semantics - I

    • Copy/Move Semantics - II

    • Copy/Move Semantics - III

    • Copy/Move Semantics - IV

    • Copy Move Semantics Implementation

    • Dynamic Array Issues

    • Placement new

    • Smart Reallocation

    • Better Dynamic Array - I

    • Better Dynamic Array - II

    • Better Dynamic Array - III

    • Better Dynamic Array - IV

    • Conclusion

  • 4

    Singly Linked Lists

    • Introduction

    • Basic Functions

    • Modifiers - I

    • Constructors

    • Copy/Move Operations

    • Modifiers - II

    • Modifiers - II

    • Issues

    • Element Access

    • Source Files

  • 5

    Doubly Linked Lists

    • Source Files

    • Basic Functions - I

    • Basic Functions - II

    • Modifiers - I

    • Accessors

    • Constructors

    • Modifiers - II

    • Modifiers - III

    • Modifiers - IV

  • 6


    • Source Files

    • Basics

    • String Size

    • Copy & Concatenation

    • Copying Strings

    • String Class

  • 7

    Function Pointers

  • 8

    Pointer to Member

  • 9


    • Source Files

    • Introduction

    • Function Pointers As Callbacks

    • Example

    • Member Functions As Callbacks

    • Function Objects

    • Function Objects As Callbacks

    • Function Object Internals

    • Function Object Vs Function Pointer

Course Features

  • Full lifetime access
  • Access on mobile
  • Certificate of Completion

    What you should know before enrolling in this course

    • Basic knowledge of C & C++

Course Description

C & C++ are very powerful languages when it comes to performance & flexibility. But there are some features that are complex and take time to master. One of such features is pointers. Pointers is what separates C/C++ from other languages. These are incredibly powerful as they allow programs to access memory directly and manipulate it.

This course focuses on pointers and their applications.It leans more towards implementation in C++, rather C. You'll learn the basics of pointers and then move on to understanding and implementing arrays, pointers to arrays & heap based arrays. You'll also learn advanced memory management by creating a custom dynamic array (just like std::vector<T> in standard C++ library). You'll use placement new & delete to directly place objects in a memory pool allocated through operator new function. As you'll see later in the course, this is a powerful mechanism to optimize usage of heap memory with user-defined objects.

After arrays, you'll learn how to use pointers to create node-based data structures. We'll focus on two types of linked lists - singly & doubly linked lists. You'll understand the difference between arrays and lists and also learn how to access the elements of both the data structures without having to know their internal structure. This is possible by creating context variables that allows access in a container-agnostic manner. 

Pointers are invaluable while working with strings. You'll learn how to create dynamic strings using pointers. This will be shown with an implementation of a string class.

The next important topic you'll learn and implement will be function pointers. You'll understand how function pointers work and how we can simplify their syntax. You'll also master the complexity of creating arrays of function pointers and functions that return function pointers. On top of that, you'll be comfortable with functions returning pointer to functions that themselves return pointer to other functions. Confused? See the section on function pointers.

That's not all. You'll also learn how to create pointer to members (which have even a more complex syntax than function pointers). 

Furthermore, you'll learn how to create callbacks through functions pointers. This course will show you how to optimize the callbacks through function objects. Function objects are more powerful than functions pointers as callbacks.We'll use this knowledge and apply it in many examples to reinforce the concept of pointers to functions.

This course also introduces some commonly used containers of the C++ standard template library (STL), such as std::array, std::vector & std::list. By the time you hit these topics, you'll already know how these are implemented internally. How about that!

This course relies on some modern C++ (C++11) features to simplify things, such as auto, std::initializer_lists, type aliases. Even if you don't know about these features, the course has videos on these topics to get you started. Additionally, there are four full length videos dedicated to discussion on move semantics.

I hope you enjoy this course!


Owner at Poash Technologies

Umar Lone

Civil engineer who found his calling in software development. Never worked as a Civil engineer, jumped at the first chance and started teaching C++, Visual C++ & COM 18 years ago. Currently, trains software professionals in various IT companies in India in different technologies, such as C++, Advanced C++, STL, Design Patterns, Android, Unity, Linux, etc. Very passionate about teaching and has trained more than 25,000 software professionals in a teaching career spanning more than 18 years. An avid gamer, currently trying his hand with game development in Unity & Unreal. Has a few Android applications to his credit, including one on Design Patterns. Only thing he likes more than C++ is Modern C++.

New course notifications

Add your email to the mailing list to get the latest updates.