:) I need fact check if this is makes sense ( I think it does but .....)
".... when you overload the assignment operator, you must always want to overload the copy constructor as well (and vice versa). You don't want your custom copying routine used in some situations and the default member by member scheme used in others. Even if you don't think you'll use one or the other, you may find that compiler using them in non obvious situation, such as passing an argument to a function by value, and returning from function by value.
In fact if the constructor to a class involves the use of system resources such as memory or disk files, you should almost always overload both the assignment operator and the copy constructor, and make sure they do what you want."
There is one exception I can think of when you want a destructor but don't need copy ctor or assignment operator. For example sometimes you want to know how many objects are in memory.