Object-Oriented Programming with C++
2h 20mIntermediate2025-02-13
Authors

Károly Nyisztor
Mobile Developer, Instructor
Course details
Are you an intermediate-level programmer looking to level up with C++? This comprehensive course is designed to equip you with a deeper understanding of some of the core principles of object-oriented programming (OOP) and their practical application in C++ development. Instructor Károly Nyisztor shows you what it takes to master encapsulation, inheritance, polymorphism, and abstraction, while gaining hands-on experience in designing and implementing C++ classes. Explore the proper use of constructors, destructors, and member functions, as well as advanced techniques for creating flexible and reusable code through inheritance and polymorphism. Along the way, discover essential memory management strategies, including the use of smart pointers and RAII principles, to write more efficient and robust C++ programs.
Learning objectives
Explain the core principles of object-oriented programming (encapsulation, inheritance, polymorphism, and abstraction) in the context of C++.
Design and implement C++ classes, including proper use of constructors, destructors, and member functions.
Apply inheritance and polymorphism to write flexible and reusable C++ code.
Demonstrate proper memory management techniques using smart pointers and RAII principles in C++.
Design and develop small-scale object-oriented projects in C++, leveraging OOP concepts and C++-specific features.
Learning objectives
Explain the core principles of object-oriented programming (encapsulation, inheritance, polymorphism, and abstraction) in the context of C++.
Design and implement C++ classes, including proper use of constructors, destructors, and member functions.
Apply inheritance and polymorphism to write flexible and reusable C++ code.
Demonstrate proper memory management techniques using smart pointers and RAII principles in C++.
Design and develop small-scale object-oriented projects in C++, leveraging OOP concepts and C++-specific features.
Skills covered
C++Programming FoundationsProgramming LanguagesOpen SourceSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Object-oriented C++
- 02 - Prerequisites - What you need to know
- 03 - Using GitHub Codespaces
- 04 - From unstructured code to OOP
1. Classes and Objects
- 05 - Defining classes
- 06 - Access specifiers
- 07 - Separating class declaration from class definition
- 08 - Creating and using objects
- 09 - Constructors and destructors
- 10 - Challenge - Implementing a smart home thermostat class
- 11 - Solution - Implementing a smart home thermostat class
2. Encapsulation and Data Hiding
- 12 - Why should we hide information
- 13 - Doorways to data - Getters and setters
- 14 - Applying the DRY principle
- 15 - Challenging const correctness
- 16 - Friends
- 17 - Challenge - Bank account with audit system
- 18 - Solution - Bank account with audit system
3. Inheritance and Code Reuse
- 19 - Why reinvent the wheel
- 20 - Extending classes
- 21 - Access control in inheritance
- 22 - Overriding and extending functionality
- 23 - Multiple inheritance
- 24 - Multiple inheritance pitfalls
- 25 - Challenge - RPG character system
- 26 - Solution - RPG character system
4. Polymorphism and Virtual Functions
- 27 - The many faces of objects
- 28 - Virtual functions - The basics
- 29 - Runtime polymorphism
- 30 - Pure virtual functions and abstract classes
- 31 - Virtual destructors - Why, when, and how
- 32 - Challenge - Superhero ability system
- 33 - Solution - Superhero ability system
5. Practical OOP - Putting It All Together
- 34 - Modular design and separation of concerns
- 35 - Dissecting a class
- 36 - Quick overview of SOLID principles
- 37 - Designing for reusability
- 38 - Smart use of smart pointers
- 39 - Quick wins with RAII
Conclusion
- 40 - Course wrap-up and next steps