Constructors and destructor are the only places where the virtual
functionality doesn't kick in.
Because the Derived
object is yet to be constructed and calling Derived
function would have resulted in Undefined Behavior. In case of destructor, Derived
object is already destructed.
This is explained in Bjarne Stroustrup's Technical FAQ page.
The only way left is to let the object get constructed and then call the Method()
.