1*99451b44SJordan Rupprecht #include <stdio.h> 2*99451b44SJordan Rupprecht #include <memory> 3*99451b44SJordan Rupprecht 4*99451b44SJordan Rupprecht class BaseClass 5*99451b44SJordan Rupprecht { 6*99451b44SJordan Rupprecht public: 7*99451b44SJordan Rupprecht BaseClass(); ~BaseClass()8*99451b44SJordan Rupprecht virtual ~BaseClass() { } 9*99451b44SJordan Rupprecht }; 10*99451b44SJordan Rupprecht 11*99451b44SJordan Rupprecht class DerivedClass : public BaseClass 12*99451b44SJordan Rupprecht { 13*99451b44SJordan Rupprecht public: 14*99451b44SJordan Rupprecht DerivedClass(); ~DerivedClass()15*99451b44SJordan Rupprecht virtual ~DerivedClass() { } 16*99451b44SJordan Rupprecht protected: 17*99451b44SJordan Rupprecht int mem; 18*99451b44SJordan Rupprecht }; 19*99451b44SJordan Rupprecht BaseClass()20*99451b44SJordan RupprechtBaseClass::BaseClass() 21*99451b44SJordan Rupprecht { 22*99451b44SJordan Rupprecht } 23*99451b44SJordan Rupprecht DerivedClass()24*99451b44SJordan RupprechtDerivedClass::DerivedClass() : BaseClass() 25*99451b44SJordan Rupprecht { 26*99451b44SJordan Rupprecht mem = 101; 27*99451b44SJordan Rupprecht } 28*99451b44SJordan Rupprecht 29*99451b44SJordan Rupprecht int main(int argc,char ** argv)30*99451b44SJordan Rupprechtmain (int argc, char **argv) 31*99451b44SJordan Rupprecht { 32*99451b44SJordan Rupprecht BaseClass *b = nullptr; // Break here and check b has 0 children 33*99451b44SJordan Rupprecht b = new DerivedClass(); // Break here and check b still has 0 children 34*99451b44SJordan Rupprecht b = nullptr; // Break here and check b has one child now 35*99451b44SJordan Rupprecht return 0; // Break here and check b has 0 children again 36*99451b44SJordan Rupprecht } 37