Q1: to print every derived type, what's better
1) copy display function and make it virtual
2) replace "attribute name" with "virtual type function name" in Base Class
as
So you mean
2) replace "attribute name" with "virtual type function name" in Base Class
then make virtual function private?
because I tried it when it is public and it works good