KnowledgeCity

C++ Advanced

Preview the first lesson free — get full access to all 51 lessons.

To view this video please enable JavaScript.

Course: On-Demand
Advanced  Provider Mikhail Veygman  8 chapters ·  51 Lessons ·  3h 27m  in Arabic, German, English, Spanish, French, Portuguese, Chinese Simplified 

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.