Either this should be non-virtual or there should be a virtual _data_in_temp_obj() instead (same with other non-overridden virtual methods).  Simpler to just make them non-virtual.