Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Advanced Object-Oriented & Generic Programming in C++

Packt via Coursera

Overview

Coursera Plus Monthly Sale: All Certificates & Courses 40% Off!
This advanced course focuses on object-oriented and generic programming in C++, emphasizing the core principles and techniques that every experienced developer should master. The course will guide you through advanced inheritance, exception handling, file input/output operations, and template programming, equipping you with the knowledge to write clean, efficient, and reusable C++ code. You’ll also explore C++11/14/17 features such as lambda expressions, type traits, and advanced STL usage. The course starts by enhancing your object-oriented programming skills with in-depth discussions on inheritance, composition, and polymorphism, along with practical examples and real-world applications. You will also explore advanced topics like virtual functions, dynamic casting, and multiple inheritance, ensuring a solid understanding of complex object hierarchies. Exception handling will be tackled next, where you will learn advanced techniques such as stack unwinding, nested exceptions, and using the noexcept keyword for performance improvements. As you progress, the course introduces the power of generic programming through templates, exploring topics like template argument deduction, perfect forwarding, variadic templates, and class template specialization. You will learn how to optimize code and improve flexibility with these tools, enabling you to build robust, reusable components. The course then dives into C++'s powerful Standard Template Library (STL), where you'll master containers such as std::vector, std::map, and std::unordered_map, and learn the performance nuances with Big-O notation. This course is designed for intermediate to advanced programmers who want to refine their C++ skills and gain expertise in complex C++ features. A basic understanding of C++ syntax and object-oriented programming is recommended, and the course will be most beneficial to those aiming to develop high-performance applications or work with large, complex systems.

Syllabus

  • Object-Oriented Programming
    • In this module, we will explore core concepts of object-oriented programming including inheritance, composition, and access modifiers. We will also walk through a practical project that covers key OOP principles, such as virtual functions, constructor inheritance, and the use of dynamic_cast and typeid. By the end, you'll gain an understanding of abstract classes and the complexities of multiple inheritance.
  • Exception Handling
    • In this module, we will cover the essentials of exception handling in C++, from the basics of throwing and catching exceptions to handling multiple catch blocks. We will also explore advanced topics like stack unwinding, nested exceptions, and the noexcept keyword. The module includes practical demonstrations for managing errors efficiently within your code.
  • File Input and Output
    • In this module, we will introduce various file I/O operations, including reading and writing text files, handling errors, and using the C++17 Filesystem library. You'll also create a utility to copy files and delve into character and binary I/O for more complex file manipulations.
  • Templates
    • In this module, we will dive into templates, one of the most powerful features in C++. We’ll cover everything from basic template usage to advanced topics like perfect forwarding, variadic templates, and type traits. You'll also learn how to specialize templates and work with class templates in various contexts.
  • Lambda Expressions (C++11)
    • In this module, we will explore lambda expressions in C++11, showing how they simplify code by replacing function objects and callbacks. You’ll also learn about lambda captures, including capturing variables by value or reference, and dive into the inner workings of lambda expressions for a deeper understanding.
  • Standard Template Library
    • In this module, we will cover the Standard Template Library (STL), focusing on key containers like std::vector, std::map, and std::unordered_map. You’ll also learn how to evaluate algorithm performance using Big O notation, and gain hands-on experience customizing algorithms with function objects and lambda expressions.

Taught by

Packt - Course Instructors

Reviews

Start your review of Advanced Object-Oriented & Generic Programming in C++

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.