This is often the simplest solution to copying/assignment - look after the members, and the class will take care of itself. (Of course, you apply this rule recursively.) Again. in general, you only really need a copy ctor/assignment/dtor if your class handles some sort of resource such as assigned memory.