 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Heinz Saathoff Guest
|
Posted: Thu Apr 01, 2004 7:09 am Post subject: Re: long long |
|
|
Moin,
Michael Walter schrieb...
| Quote: | Wenn ich mich recht erinnere, ist aber
Typ x();
nicht ok, da das vom Compiler als Funktionsdeklaration (x ist
parameterlose Funktion, die Typ liefert) interpretiert.
Ja. Dein "aber" erscheint unpassend.
|
Ich hab mir beim 'aber' nur gedacht, daß man ja auf die Idee kommen
könnte, statt
Typ x = Typ();
lieber
Typ x(); //geht nicht
zu schreiben, was in diesem Fall nicht geht, während es sonst bei
mindestens einem Parameter die kürzere Schreibweise wäre.
- Heinz
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Andreas Huennebeck Guest
|
Posted: Thu Apr 01, 2004 7:33 am Post subject: Re: long long |
|
|
Heinz Saathoff wrote:
| Quote: | Ich hab mir beim 'aber' nur gedacht, daß man ja auf die Idee kommen
könnte, statt
Typ x = Typ();
lieber
Typ x(); //geht nicht
zu schreiben, was in diesem Fall nicht geht, während es sonst bei
mindestens einem Parameter die kürzere Schreibweise wäre.
|
Bedeutet
Typ x = Typ();
garantiert immer, dass nur ein einziges Mal der Defaultkonstruktor
von Typ gerufen wird? Ich koennte mir auch vorstellen, dass erst der
Defaultkonstruktor und dann der Zuweisungsoperator gerufen werden.
Bei
Typ x;
ist ersteres garantiert.
Tschau
Andreas
--
Andreas Hünnebeck | email: [email]ah (AT) despammed (DOT) com[/email]
----- privat ---- | www : http://www.huennebeck-online.de
Fax/Anrufbeantworter: 0721/151-284301 o. 0180/50525-5232659 (24 Pfg/Min)
SMS: D1=72617 D2=0172/7366-042 E-Plus=0177/7934-396 Viag=0179/2029-894
GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Markus Schaaf Guest
|
Posted: Thu Apr 01, 2004 1:47 pm Post subject: Re: long long |
|
|
"Andreas Huennebeck" <ah (AT) despammed (DOT) com> schrieb:
| Quote: | Typ x = Typ();
garantiert immer, dass nur ein einziges Mal der Defaultkonstruktor
von Typ gerufen wird? Ich koennte mir auch vorstellen, dass erst der
Defaultkonstruktor und dann der Zuweisungsoperator gerufen werden.
|
"Zuweisungsoperator" ist hier überhaupt nicht im Spiel. Höchstens
die Kopier-Erzeugerfunktion (aka Copy-C'tor).
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Thu Apr 01, 2004 2:58 pm Post subject: Re: long long |
|
|
Andreas Huennebeck wrote:
| Quote: | Heinz Saathoff wrote:
Ich hab mir beim 'aber' nur gedacht, daß man ja auf die Idee kommen
könnte, statt
Typ x = Typ();
lieber
Typ x(); //geht nicht
zu schreiben, was in diesem Fall nicht geht, während es sonst bei
mindestens einem Parameter die kürzere Schreibweise wäre.
Bedeutet
Typ x = Typ();
garantiert immer, dass nur ein einziges Mal der Defaultkonstruktor
von Typ gerufen wird?
|
Ja.
| Quote: | Ich koennte mir auch vorstellen, dass erst der Defaultkonstruktor und
dann der Zuweisungsoperator gerufen werden.
|
Es wird per Defaultkonstruktor ein temporäres Objekt erzeugt, dann wird
per Kopierkonstruktor x daraus erzeugt. Allerdings kann (und darf) die
Kopie wegoptimiert werden, so daß x im Prinzip direkt per
Defaultkonstruktor erzeugt wird.
| Quote: | Bei
Typ x;
ist ersteres garantiert.
|
Dafür werden eingebaute Typen (außer bei globalen Variablen) nicht
initialisiert.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|