Well, you're returning a String by value. Are you sure the constructor isn't being called in addition to the operator, rather than instead of?
Ah, yes both are being called.
I was told I needed to return *this in order to enable chaining of the constructors...
Change the return type to String & to avoid the constructor call.