c++ = operator and copy constructor