...
OOP52-CPP:EX0: Deleting a polymorphic object without a virtual destructor is permitted if the object is referenced by a pointer to its precise typeclass, rather than via a base pointer to a class it inherits from.
Code Block | ||||
---|---|---|---|---|
| ||||
class Base { public: // ... virtual void AddRef() = 0; virtual void Destroy() = 0; }; class Derived final : public Base { public: // ... virtual void AddRef() { /* ... */ } virtual void Destroy() { delete this; } private: ~Derived() {} }; |
...