Free, Unlimited Access
Progress directly from our introductory course, expanding your programming knowledge to more advanced concepts.
We also have follow-ups to this course, where we build complex, portfolio-ready projects.
No copying-and-pasting code in this course.
We explain every line of code we're using, so you understand exactly what is happening.
Everything we create is organised and implemented using modern, professional practices.
This means the techniques we learn are usable in large, professional projects.
We don't just explain what we're doing, but also why.
This builds transferrable skills, so you can take what you've learnt and apply them to your own projects.
This course is intended for those who already have a basic familiarity with object oriented programming in C++. It is designed as a follow up for our introductory course:
Those who already have some knowledge of C++, or are familiar with object oriented programming in another language, may be able to skip the introductory course.
The first chapter of this pro course includes a summary of the topics covered, to help you get caught up.
A quick crash tour of C++ basics, for those with previous object oriented programming experience.
A deeper look at how memory is managed in C++, and how we can take control of that process to keep larger projects maintainable.
An introduction to the C++ type system, and how we can use advanced compile-time techniques to take full advantage of it.
A detailed guide to arrays and linked lists in C++, which allow us to place collections of our objects into sequential containers
Learn some of the many other choices we have for organising collections of objects, and the advantages and disadvantages of each option.
A deeper look at C++ functions, and more advanced techniques of how we can create and use them.
An overview of important techniques and standard library algorithms that can help us work with our collections of objects.
An overview of the most useful algorithms that are available within the standard library
Explore a deeper and more organised way of detecting and handling errors, which lets us keep larger projects maintainable
A deeper look at classes and objects, allowing us to empower our custom types with more advanced capabilities.
Develop a deeper understanding of strings in C++, and how we can use them with streams to transfer data between components.
Learn how we can serialize parts of our program, enabling us to save and restore objects from the user's hard drive.
Continue your progress in this course with the following lessons. These are recommended for you based on your progress: