🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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 "()"
#385
Author: Michael Averstegge
Date: Mon, 11 Sep 1995 12:59
15 lines
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 "()"
#386
Author: Rudiger Schierz
Date: Mon, 11 Sep 1995 17:36
21 lines
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 "()"
#393
Author: Frank Thilo
Date: Mon, 11 Sep 1995 20:10
21 lines
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 "()"
#390
Author: Joerg Koenig
Date: Tue, 12 Sep 1995 08:14
31 lines
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