I have a question related to the implementation of the = operator in C++. If I remember correctly, there are two ways of implementing = in a class: one is to overload = explicitly, and for example:
class ABC
{
public:
int a;
int b;
ABC& operator = (const ABC &other)
{
this->a = other.a;
this->b = other.b;
}
}
and the other is to define = implicitly. For example:
class ABC
{
public:
int a;
int b;
ABC(const ABC &other)
{
a = other.a;
b = other.b;
}
}
My question is as follows:
1) Is it necessary to implement = explicitly and implicitly?
2) If only one of them is necessary, which implementation is preferred?
Thanks!