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

Overview

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

Syllabus

Introduction
  • 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
Conclusion
  • Next steps

Taught by

Bill Weinman

Reviews

4.6 rating at LinkedIn Learning based on 611 ratings

Start your review of C++: Advanced Topics

Never Stop Learning.

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

Someone learning on their laptop while sitting on the floor.