Bedeutung von Codezeile
-
Hallo zusammen,
ich bräuchte Hilfe bei einer Code Zeile die ich nicht ganz verstehen und leider nicht weiß nach was ich googlen soll.
Es geht um folgende Zeile:class Endpoint& endpoint;
Folgendes leuchtet mir noch nicht ein:
Warum muss ich hier ein Class vor der Objekt instanzierung schreiben?
Was bedeutet der Adressoperator & nach dem Klassennamen?
Ich kenne ihn bisher nur vor dem Namen.Wäre dankbar wenn mir jemand hier eine kurze Erklärung geben könnte. Oder vieleicht ein Stichwort unter dem ich im Netz fündig werden könnte.
Vielen Dank schon mal.
Gruß Stefan
-
@cplusplus8 sagte in Bedeutung von Codezeile:
Warum muss ich hier ein Class vor der Objekt instanzierung schreiben?
Muss man nicht. Ist überflüssig. Allerdings ist es keine Instanziierung.
@cplusplus8 sagte in Bedeutung von Codezeile:
Was bedeutet der Adressoperator & nach dem Klassennamen?
Ich kenne ihn bisher nur vor dem Namen.Er zeigt an, daß es sich bei dem folgenden Bezeichner um eine Referenz handelt. Wo
&
steht, ist egal:int foo; int& bar = foo; int &baz = foo; int & qux = foo;
... alles dasselbe.
Hier jedoch
@cplusplus8 sagte in Bedeutung von Codezeile:
class Endpoint& endpoint;
fehlt eine Initialisierung. Referenzen müssen initialisiert werden, da später nicht mehr geändert werden kann, worauf sie sich beziehen.
-
@swordfish sagte in Bedeutung von Codezeile:
Hier jedoch
@cplusplus8 sagte in Bedeutung von Codezeile:
class Endpoint& endpoint;
fehlt eine Initialisierung. Referenzen müssen initialisiert werden, da später nicht mehr geändert werden kann, worauf sie sich beziehen.
Ist vielleicht ein class-member und wir sehen die Initialisierung nur nicht.
-
Das
class
ist auch nicht überflüssig. Falls vorher nicht bekannt ist, dass es eine KlasseEndpoint
gibt, stellt der Typnameclass Endpoint
gleichzeitig eine Deklaration dieser Klasse dar.Vielleicht sollte man das besser so machen:
class Endpoint; Endpoint& endpoint;
aber das ist Geschmackssache.
-
@bashar sagte in Bedeutung von Codezeile:
Das
class
ist auch nicht überflüssig. Falls vorher nicht bekannt ist, dass es eine KlasseEndpoint
gibt, stellt der Typnameclass Endpoint
gleichzeitig eine Deklaration dieser Klasse dar.Schräg. Sowas hab ich noch nie gesehen.
-
Hä? Eine stinknormale Vorwärtsdeklaration.
-
@mechanics sagte in Bedeutung von Codezeile:
Hä? Eine stinknormale Vorwärtsdeklaration.
@cplusplus8 sagte in Bedeutung von Codezeile:
class Endpoint& endpoint;
== stinknormal?
-
Wenn ich jetzt nicht auf dem Schlauch stehe, was durchaus möglich ist, dann sehe ich an der Zeile nichts besonderes.
-
@mechanics Mir war eben nicht bekannt, daß soetwas gleichzeitig als forward-decl. durchgeht.