Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

LinkedIn Learning

C++: Advanced Topics

via LinkedIn Learning


Deepen your understanding of C++. Learn about some of the more advanced aspects of this core programming language, from smart pointers to move semantics.

Want to deepen your understanding of C++? In this course, explore some of the more complex aspects of this core programming language, from smart pointers to move semantics. Instructor Bill Weinman begins by diving deeper into the subject of classes and objects, including class inheritance. Next, Bill goes over smart pointers, which provide the functionality of a pointer with managed memory allocation. He also covers move semantics, including the copy-and-swap idiom; lambda functions; working with a unit test library; and creating a custom string library. As he wraps up the course, Bill shares practical applications of these concepts, helping you grasp how to leverage your new skills in your own C++ projects.


  • Advanced programming with C++
1. Classes and Objects
  • Defining a class
  • Data members
  • Function members
  • Constructors and destructors
  • Explicit constructors
  • Namespaces
  • Self-referencing pointer
  • Operator overloads
  • Non-member operators
  • Conversion operators
  • Increment and decrement operators
  • Allocating object memory
  • Functors
  • Example: numword
2. Class Inheritance
  • Overview of inheritance
  • Simple inheritance
  • Accessing the base class
  • Friendship
  • Multiple inheritance
  • Polymorphism
3. Smart Pointers
  • Why smart pointers
  • Unique pointer
  • Shared pointer
  • Weak pointer
  • Using a custom deleter
  • Choosing a smart pointer
4. Move Semantics
  • What is move semantics
  • Understanding lvalues and rvalues
  • Using std::move
  • The move constructor
  • The move assignment operator
  • The copy-and-swap idiom
  • Rule of five
5. Lambda Functions
  • Lambda syntax
  • Captures
  • Polymorphic lambdas
6. The C Preprocessor
  • About the preprocessor
  • Macros as constants
  • Including files
  • Conditional compilation
  • Defining macros
  • Including files only once
7. Unit Tests
  • The importance of unit tests
  • A unit test library
8. Custom String Library
  • Why non-STL strings?
  • Overview of BWString
  • Constructors
  • Memory management
  • Operators
  • Utility methods
  • Find and replace
  • Splitting strings
  • Using the BWString library
  • Next steps

Taught by

Bill Weinman

Related Courses


Start your review of C++: Advanced Topics

Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free