
Welcome to Professional C++ - Object-Oriented C++ Programming.
My name is Chuck and I will be your instructor for this course. Your feedback is welcome and if I can assist you in any way, please feel free to contact me.
This intermediate‑level course teaches you how to build professional, modern applications using C++ 17 and the full power of object‑oriented programming. Designed for developers who already understand the basics of C++ or come from languages like C, Java, or C#, this course takes you deep into the features, patterns, and best practices used in real‑world C++ development.
You’ll learn how to design and implement classes, manage memory safely, apply test‑driven development, use templates effectively, and leverage modern C++ features such as smart pointers, lambda expressions, functional programming utilities, and the STL. Throughout the course, you’ll also explore design principles and patterns that help you write clean, maintainable, and scalable C++ applications.
Chuck’s courses have been delivered to thousands of developers worldwide, including teams at major corporations, government agencies, and the military. His training is used internally at Microsoft to teach professional developers modern C++ techniques.
By the end of this course, you’ll be ready to contribute meaningfully to C++ projects with a strong understanding of object‑oriented design, modern C++ features, and the practical skills needed to write high‑quality software.
What You’ll Learn
Implement classes, constructors, destructors, and const‑correct code
Apply test‑driven development to guide implementation
Master memory management with pointers, references, move/copy semantics
Handle exceptions and design robust error‑handling strategies
Overload operators correctly and effectively
Use and create function and class templates, including variadic templates
Work with smart pointers (unique, shared, weak) using RAII
Apply inheritance, overriding, and polymorphism with best practices
Understand interfaces, dependency inversion, and interface segregation
Use lambda expressions, functional utilities, and modern STL features
Explore GOF design patterns implemented in C++
Build clean, maintainable, object‑oriented C++ 17 applications