C++: Advanced Topics

C++: Advanced Topics
C++: Advanced Topics

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 3h 15m | 491 MB
eLearning | Skill level: Advanced

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.

Topics include:

  • Classes and objects
  • Constructors and conversion operators
  • Class inheritance
  • Smart pointers
  • Move semantics
  • Lambda syntax
  • The C preprocessor
  • Unit tests
  • Building a custom string library
+ Table of Contents

1 Advanced programming with C++

Classes and Objects
2 Defining a class
3 Data members
4 Function members
5 Constructors and destructors
6 Explicit constructors
7 Namespaces
8 Self-referencing pointer
9 Operator overloads
10 Non-member operators
11 Conversion operators
12 Increment and decrement operators
13 Allocating object memory
14 Functors
15 Example numword

Class Inheritance
16 Overview of inheritance
17 Simple inheritance
18 Accessing the base class
19 Friendship
20 Multiple inheritance
21 Polymorphism

Smart Pointers
22 Why smart pointers
23 Unique pointer
24 Shared pointer
25 Weak pointer
26 Using a custom deleter
27 Choosing a smart pointer

Move Semantics
28 What is move semantics
29 Understanding lvalues and rvalues
30 Using std move
31 The move constructor
32 The move assignment operator
33 The copy-and-swap idiom
34 Rule of five

Lambda Functions
35 Lambda syntax
36 Captures
37 Polymorphic lambdas

The C Preprocessor
38 About the preprocessor
39 Macros as constants
40 Including files
41 Conditional compilation
42 Defining macros
43 Including files only once

Unit Tests
44 The importance of unit tests
45 A unit test library

Custom String Library
46 Why non-STL strings
47 Overview of BWString
48 Constructors
49 Memory management
50 Operators
51 Utility methods
52 Find and replace
53 Splitting strings
54 Using the BWString library

55 Next steps