C++: Advanced Topics

Go to class
Write Review

Free Online Course: C++: Advanced Topics provided by LinkedIn Learning is a comprehensive online course, which lasts for 3-4 hours worth of material. The course is taught in English and is free of charge. Upon completion of the course, you can receive an e-certificate from LinkedIn Learning. C++: Advanced Topics is taught by Bill Weinman.

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