Today we talked about four things:
1) The use of the virtual, override, and final keywords when doing inheritance
2) The ability to make a virtual function = 0 to make it "pure virtual", meaning that this class (called an abstract class) cannot be instantiated, but any child class who wants to be instantiated must implement it. This is useful for making interfaces (lists of functions that a subclass must implement).
3) Multiple inheritance is a thing also. A class can inherit from multiple classes, and it copy/pastes each one. This is usually fine, except when you inherit from two parents that share a parent class, which causes everything to break unless you inherit via ": virtual public" rather than just ": public" which fixes everything.
Ещё видео!