My basic question is what is the benefit I get by having a copy constructor? I mean from the optimization and efficiency point of view. Because ultimately insde the copy constructor you would be using the '=' assignment operator only so why not have only a overloaded '=' assignment operator instead of having a copy constructor.
In essence, why do I need a copy constructor? Can't I do with only an overloaded '=' operator?