Naja, der Zuweisungsoperator ist auskommentiert. Vermutlich deswegen, weil er nichts weiter tut als sich selbst aufzurufen, also eine Endlosrekursion. Irgendwo musst du dir schon die Arbeit machen und festlegen, was genau bei einer Zuweisung passieren soll. Dass der Zuweisungsoperator eine Kopie zurückgibt, ist auch nicht gut, das sollte eine Referenz sein.
Es ist übrigens nicht empfehlenswert, den Copykonstruktor mit Hilfe des Zuweisungsoperators zu implementieren, weil der Zuweisungsoperator dann in der Lage sein muss, mit einem nicht (oder zumindest nicht vollständig) initialisierten Zielobjekt zurechtzukommen. Besser ist es, einen ordentlichen Copykonstruktor zu schreiben, und dazu eine Swap-Methode, die zwei TString tauschen kann und sicher keine Exception wirft. Dann kann man den Zuweisungsoperator ganz einfach mittels "Copy and Swap" implementieren:
TString& TString::operator = (TString &TString2)
{
TString temp( TString2 );
Swap( temp, *this );
return *this;
}[/code]
Aber wie gesagt, das erfordert einen "richtigen" Copykonstruktor, keinen, der einfach nur den Zuweisungsoperator aufruft.