C++: Advanced Topics
Overview
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
- Advanced programming with C++
- 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
- Overview of inheritance
- Simple inheritance
- Accessing the base class
- Friendship
- Multiple inheritance
- Polymorphism
- Why smart pointers
- Unique pointer
- Shared pointer
- Weak pointer
- Using a custom deleter
- Choosing a smart pointer
- 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
- Lambda syntax
- Captures
- Polymorphic lambdas
- About the preprocessor
- Macros as constants
- Including files
- Conditional compilation
- Defining macros
- Including files only once
- The importance of unit tests
- A unit test 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
-
Art of C Programming
CEC, University of Calicut
-
C++ For Programmers
1.6 -
C++ For C Programmers, Part B
University of California, Santa Cruz
2.0 -
Introduction to Data Structures
New York University (NYU)
-
An Introduction to Programming Through C++
Indian Institute of Technology Bombay, NPTEL
-
C++ For C Programmers, Part A
University of California, Santa Cruz
3.2
Reviews
0.0 rating, based on 0 reviews