copy ctor
make copy ctor private
enum typical use
function pointer
macro use example
variable size
union use
pure virtual func