Packt
Advanced Object-Oriented & Generic Programming in C++
Packt

Advanced Object-Oriented & Generic Programming in C++

Included with Coursera Plus

Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

9 hours to complete
3 weeks at 3 hours a week
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Intermediate level

Recommended experience

9 hours to complete
3 weeks at 3 hours a week
Flexible schedule
Learn at your own pace

What you'll learn

  • Master advanced object-oriented concepts such as inheritance, polymorphism, and multiple inheritance in C++

  • Gain a deep understanding of generic programming with templates, perfect forwarding, and variadic templates

  • Understand the inner workings of exception handling and how to handle nested exceptions, stack unwinding, and optimize with noexcept

  • Harness the power of C++'s Standard Template Library (STL), including custom containers and performance optimization with Big-O notation

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

April 2025

Assessments

7 assignments

Taught in English

See how employees at top companies are mastering in-demand skills

 logos of Petrobras, TATA, Danone, Capgemini, P&G and L'Oreal

Build your subject-matter expertise

This course is part of the Complete Modern C++ (C++11/14/17) Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate
Coursera Career Certificate

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV

Share it on social media and in your performance review

Coursera Career Certificate

There are 6 modules in this course

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.

What's included

14 videos2 readings1 assignment

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.

What's included

6 videos1 assignment

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.

What's included

7 videos1 assignment

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.

What's included

15 videos1 assignment

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.

What's included

8 videos1 assignment

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.

What's included

13 videos1 reading2 assignments

Instructor

Packt - Course Instructors
Packt
617 Courses98,656 learners

Offered by

Packt

Explore more from Software Development

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

New to Software Development? Start here.

Coursera Plus

Open new doors with Coursera Plus

Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions