The assignment operator.
Should be overridden in a derived class and perform the actual assignment. The default implementation does nothing and just returns a reference to this object.