The following table will help you decide which all methods you need to implement in your C++ class. This list is by no means exhaustive.
| If | Then |
|---|---|
| You have implemented the copy constructor, overriden the assignment operator or have a virtual destructor | As a rule of thumb, you need to implement all three of them. |
| You have derived your class from some other class and overriden the assignment operator | Make sure that you call the base class' assignment operator. Use the syntax: this->base::operator=(myObject) to call the base class' assignment operator. |
| You have overriden the assignment operator | Make sure that you take care of self assignment statement: object = object |