Thema: C++ = C++ ?

Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#28

Re: C++ = C++ ?

  Alt 20. Feb 2008, 17:06
Zitat von OregonGhost:
Du irrst.
Code:
int i = 0;
ist identisch mit
Code:
int i(0);
.
Welche Schreibweise besser lesbar ist, ist vermutlich offensichtlich. Das erste ist zudem keine Zuweisung, sondern eine Initialisierung, das ist in C++ ein erheblicher Unterschied.
Meines Wissens würde ein
Code:
int i = 0;
zwei mal einen Constructor von int aufrufen: einmal den von i und einmal ein temporäres Objekt mit 0. Danach weist er das temporäre Objekt i zu und gibt das temporäre Objekt frei.

Mit
Code:
int i(0);
aber wird direkt der Constructor von i aufgerufen i und somit gibt es nur einen Constructor Aufruf und kein temporäres Objekt.

/EDIT: Die Frage ist eher: Wie gut ist dein C++ Compiler, als dass er im ersten Falle das temporäre Objekt wegoptimiert. Vom reinen Sprachsatz/-standard her, läuft es im ersten Falle wie beschrieben ab.
  Mit Zitat antworten Zitat