Course Description
In this course you will learn advanced C++ topics. You’ll understand the principles of good class design and how to apply them to writing your own programs and how to use inheritance to represent real life objects without having duplicate code. You will learn how to use multiple inheritance and avoid problems that it can present. The course will give you an introduction to the functional programming concepts and using lambdas. It will also give you an overview of the move semantics that C++ 11 has introduced and will give you an overview of the STL containers and talk about both static and dynamic polymorphism.
Course Learning Objectives
- Introduce good class design concepts
- Introduce the concept of inheritance and its benefits and drawbacks
- Show alternatives in designing class structure
- Show multiple inheritance and discuss potential issues.
- Introduce static and dynamic polymorphism
- Learn to use move semantics
- Get an introduction to the functional programming concepts and using lambda function
- Learn to use templates and virtual functions for static and dynamic polymorphism
- Introduce the STL containers
Skills You Will Learn
- Advanced Function Presentation
- Advanced Mathematics
- C++ (Programming Language)
- C++ Fundamentals
- C++ Concepts
- SAS Certified Professional: Advanced Programming
What You'll Learn
- Apply good class design principles to your own C++ programs
- Use single, multiple, private, protected, and hierarchical inheritance while avoiding common pitfalls
- Implement static and dynamic polymorphism using templates, virtual functions, and dynamic binding
- Use C++11 move semantics in your code
- Write lambda functions and apply functional programming concepts, including capture rules and return signatures
- Work with the STL containers
Key Takeaways
- The course covers good class design and how to apply these principles when writing your own programs.
- Inheritance is presented along with its benefits and drawbacks, with alternatives such as class composition shown for designing class structure.
- Multiple inheritance is covered together with its potential issues, including ambiguities and resolving them using virtual base classes.
- Both static and dynamic polymorphism are addressed, using templates and virtual functions and concepts such as dynamic binding, VTables, and pure virtual functions.
- The course introduces C++11 move semantics, functional programming with lambdas, and the STL containers.
Frequently Asked Questions
What does the C++ Advanced course cover?
It covers advanced C++ topics including good class design, inheritance (single, multiple, private, and protected), static and dynamic polymorphism, C++11 move semantics, functional programming with lambdas, and the STL containers.
How does the course handle multiple inheritance?
It shows multiple inheritance and discusses its potential issues, including ambiguities in multiple inheritance and resolving them using virtual base classes.
What will I learn about polymorphism?
You will be introduced to both static and dynamic polymorphism, learning to use templates and virtual functions, along with dynamic binding, VTables, virtual and polymorphic class destructors, and pure virtual functions and interface classes.
Does the course cover modern C++ features like lambdas and move semantics?
Yes. It gives an introduction to functional programming concepts and using lambda functions, including capture rules and signature and return, and provides an overview of the move semantics introduced in C++11.
What skills are associated with this course?
The associated skills include C++ (Programming Language), C++ Fundamentals, and C++ Concepts.









