Think of the object being constructed one level (class) at a time from the base down through the children. In the base constructor, the object just became a Base, but is not yet a Child.
the base class's constructor is called first before the derive class's contructor..
try to make a default constructor in your derive class in put the loop() function in it.. you'll see what i mean.