Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zuweisungsoperator

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.07.2008, 12:48 Uhr
~steam
Gast


Wann soll ein Zuweisungsoperator puplic gesetzt sein und wann nicht??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.07.2008, 23:09 Uhr
~xXx_loggendoff
Gast


Hm privater Zuweisungsoperator wird z.B. für die Klasse noncopyable der boost-Library verwendet. Du gibst halt dem Benutzer dann nurnoch die Möglichkeit, explizit über den Kopierkonstruktor eine Kopie zu erzeugen. Ist auch dieser privat, kann die Klasse nichtmehr kopiert werden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: