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

Provider Logo

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.

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.

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

Related Courses

Reviews

0.0 rating, based on 0 reviews

Start your review of C++: Advanced Topics

Never stop learning Never Stop Learning!

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

Sign up for free