Intermediate C++ Game Programming Tutorial 18
From Chilipedia
Another two-parter here, and we got the real stuff now. Virtual functions allow you to unlock the true potential of inheritance in C++. You need to know this shit.
Contents
Topics Covered
Part 1
- How to create a virtual function
- Using the override keyword
- Creating a pure virtual function
- Using a container of pointers to manage a heterogeneous collection of objects
- virtual destructors
Part 2
- Using inheritance and composition together
Video Timestamp Index
Source Code
Errata
- Forgot the
virtual
destructor forclass Weapon
! (this one hurts) - In the children, the function signatures should be:
int CalculateDamage( const Attributes& attr,Dice& d ) const override
- Though not technically an error, it might have been a better decision to make Weapon::GetName() and Weapon::GetRank() pure virtual functions (this would reduce the amount of per-instance data to just the vtable ptr)