copy constructor is a contruction function of a class,
when a instance of the class is initialized with another
instance of the class passed, it begins to copy all data
of the passed-in instance to creating instance.
diamond of mutil inheritence is 2 classes inherite from a
common base virtually. By claiming virtual,it will create
only one hidden base class instance(or object ) in