#include #include class BaseClass { public: BaseClass(); virtual ~BaseClass() { } }; class DerivedClass : public BaseClass { public: DerivedClass(); virtual ~DerivedClass() { } protected: int mem; }; BaseClass::BaseClass() { } DerivedClass::DerivedClass() : BaseClass() { mem = 101; } int main (int argc, char **argv) { BaseClass *b = nullptr; // Break here and check b has 0 children b = new DerivedClass(); // Break here and check b still has 0 children b = nullptr; // Break here and check b has one child now return 0; // Break here and check b has 0 children again }