•In every class, the compiler automatically supplies both
a copy constructor and an assignment
operator if we don't explicitly provide them.
•Both of these member functions perform copy operations by performing a memberwise copy from one object to another.
•In situations where pointers are not members of a class,
memberwise copy is an adequate operation for copying objects.
•However, it is not adequate when data members point to memory dynamically allocated within the class.