Never rely upon the default copy constructor or assignment operator for a class that uses dynamic memory allocation because for such classes, these default operations will not make distinct copies of an object. This is another example of the aliasing problem, since changes to a copy of an object can inadvertently change the original object.