001
28.07.2008, 15:55 Uhr
virtual
Sexiest Bit alive (Operator)
|
Also ist schon was her, daß ich C++ gemacht habe, deshalb entschuldige im voraus, wenn die Antwort nicht 100%ig ist.
Es gibt meiner meinung nach im wesentlichen Zwei Gründe, warum man einen Zuweisungoperator *nicht* public machen sollte:
1. Wenn fachliche Aspekte dagegensprechen. Ganz klassisch sind da sicherlich Singeltons, die per definitionem nur einmal existieren dürfen.
2. Wenn technische oder nicht funktionale Aspekte dem widersprechen: wenn Du einen exceptionsicheren Zuweisungsoperator haben willst, wirst Du bei nicht trivialen Klassen stets eine Copy des Originalobjektes anlegen müssen. Ist diese Kopie nur teuer zu erstellen, kann man sich schon fragen, ob man einen Zuweisungsoperator haben will. Da kann es sich schon lohnen, allein einen Copy-Constructor zu erstellen und auf den Zuweisungsoperator zu verzichten. (Klar, man kann noch immer Objekte kopieren, nur eben nicht über eine flüchtig hingeschriebene Zuweisung).
Aber wie gesagt, es fällt schon manchen Leuten nicht leicht, einen sicheren Zuweisungsoperator zu schreiben -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |