OOP in C++: final assessment

This covers the whole course. Take it after the last module.

Final quiz

1. What is an object?
2. What is encapsulation?
3. What is the name of the destructor of class Box?
4. What does new do that malloc does not?
5. What is a template?
6. What does the rule of three say?
7. What is slicing?
8. Which keyword makes a function's version be chosen from the object's real class?
9. Which class cannot be instantiated?
10. Which is the best way to store a list that grows, in modern C++?
11. What does RAII mean in practice?
12. Why should a polymorphic base class have a virtual destructor?
13. Which members are built first when a Room object with two member objects is created?
14. Through a const Account&, which call is allowed?
15. You write catch (const BankError&) before catch (const NotEnough&), and NotEnough derives from BankError. What happens?
16. A class owns a raw pointer and you do not want copies. What is the clearest fix?
17. Why do Stack<int> and Stack<string> each need their own compiled code?

Practical assessment: Build a course registration system

Without using hints, write a program that registers students on courses, with a seat limit on each course and prerequisites to check.

Final project

A bank account system: Build a program that manages several kinds of bank account, with deposits, withdrawals, transfers, monthly interest and a statement for each account.

How it is evaluated

To complete this course