Thread View: de.comp.lang.c++
4 messages
4 total messages
Started by Michael Averstegge
Mon, 11 Sep 1995 12:59
Konstruktor mit explizitem Aufruf "()"
Author: Michael Averstegge
Date: Mon, 11 Sep 1995 12:59
Date: Mon, 11 Sep 1995 12:59
15 lines
834 bytes
834 bytes
Hi, was ist der Unterschied der Aufrufe des Konstruktors der Klasse K, der einen user-definierten Konstruktor besitzt, 1. K inst(); 2. K inst; Erstere Form wird vom Compiler nicht in eine echte Instanz ueberfuerht - folgender Aufruf einer Methode meckert ueber fehlende Struktur. Dabei dachte ich immer, dass "K inst" den default Konstruktor "K()" aufruft. Wer kennt die Regel, uber die ich hier stolpere? Gruss Michael
Re: Konstruktor mit explizitem Aufruf "()"
Author: Rudiger Schierz
Date: Mon, 11 Sep 1995 17:36
Date: Mon, 11 Sep 1995 17:36
21 lines
1083 bytes
1083 bytes
In article <431bs0$s62@majestix.uni-muenster.de>, Michael Averstegge <averste@helios.uni-muenster.de> wrote: >Hi, > >was ist der Unterschied der Aufrufe des Konstruktors der Klasse K, der einen >user-definierten Konstruktor besitzt, > > 1. K inst(); > 2. K inst; > >Erstere Form wird vom Compiler nicht in eine echte Instanz ueberfuerht >- folgender Aufruf einer Methode meckert ueber fehlende Struktur. >Dabei dachte ich immer, dass "K inst" den default Konstruktor "K()" aufruft. >Wer kennt die Regel, uber die ich hier stolpere? > Der erste Konstrukt kann vom Compiler nicht von einer Funktionsdeklaration einer Funktion inst() mit leerer Argumentliste und Rueckgabewert vom Typ K unterschieden werden. Cheers, Rudiger
Re: Konstruktor mit explizitem Aufruf "()"
Author: Frank Thilo
Date: Mon, 11 Sep 1995 20:10
Date: Mon, 11 Sep 1995 20:10
21 lines
1264 bytes
1264 bytes
averste@helios.uni-muenster.de (Michael Averstegge) wrote: > was ist der Unterschied der Aufrufe des Konstruktors der Klasse K, der einen > user-definierten Konstruktor besitzt, > > 1. K inst(); Hiermit deklarierst du eine Funktion ohne Parameter, die Objekte der Klasse K zurueckliefert. Das willst du sicher nicht. > 2. K inst; Hier wird ein schones Objekt namens 'inst' der Klasse K erzeugt. Das klappt natuerlich nur, wenn der default-Konstruktor (also der ohne Parameter) existiert. Wenn du eigene Konstruktoren mit Parametern einfuehrst, wird der default-Konstruktor naemlich nicht mehr automatisch generiert. Ich schaetze, das ist hier dein Problem. Du musst also diesen Kontruktor 'von Hand' programmieren. -- Frank Thilo - gl600@appl2.hrz.uni-siegen.de IRC: Chestal - <A HREF="http://vespa.unix-ag.uni-siegen.de/~thilo"></A>
Re: Konstruktor mit explizitem Aufruf "()"
Author: Joerg Koenig
Date: Tue, 12 Sep 1995 08:14
Date: Tue, 12 Sep 1995 08:14
31 lines
1407 bytes
1407 bytes
In article <431s32$sl@joe.freinet.de>, schierz@joe.freinet.de (Rudiger Schierz) says: > >In article <431bs0$s62@majestix.uni-muenster.de>, >Michael Averstegge <averste@helios.uni-muenster.de> wrote: >>Hi, >> >>was ist der Unterschied der Aufrufe des Konstruktors der Klasse K, der einen >>user-definierten Konstruktor besitzt, >> >> 1. K inst(); >> 2. K inst; >> >>Erstere Form wird vom Compiler nicht in eine echte Instanz ueberfuerht >>- folgender Aufruf einer Methode meckert ueber fehlende Struktur. >>Dabei dachte ich immer, dass "K inst" den default Konstruktor "K()" aufruft. >>Wer kennt die Regel, uber die ich hier stolpere? >> >Der erste Konstrukt kann vom Compiler nicht von einer Funktionsdeklaration >einer Funktion inst() mit leerer Argumentliste und Rueckgabewert vom Typ K >unterschieden werden. Korrekt: Die erste Form *deklariert* eine Funktion, die ein Objekt vom Typ K zurueckliefert. > >Cheers, >Rudiger > Joerg
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads