Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Referenz auf ein Objekt übergeben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.08.2003, 17:39 Uhr
~Einsteiger
Gast


Hallo!

Wie übergibt man in C++ eine Referenz auf ein Objekt?
Ich habe eine Klasse geschrieben. Diese Klasse enthält eine Funktion, die eine Referenz auf eine andere Klasse erhalten soll.
Müsste doch normalerweise mit folgendem Prototyp gehen, oder?

void Funktion1(Klasse2);

Wenn ich dann die Funktion schreiben will meldet mit der Compiler in der markierten Zeile einen Fehler: "Syntaxfehler: ')'".

void Klasse1::SetEventHandler(Klasse2 refernz) // <-- FEHLER
{

referenz.funktion();

}

Habe auch schon mit Klasse2* herumprobiert, sollte aber normalerweise ohne * gehen. Ist zumindest in Java so.
Was habe ich falsch gemacht?

Danke!

mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.08.2003, 17:48 Uhr
virtual
Sexiest Bit alive
(Operator)


Nee,
Also was bei folgendem Funktionaufruf passiert ist folgendes:

C++:
void Funktion1(Klasse2);


Das ist ein call-by-value. Je nach dem, was Klasse2 genau ist, sehr sehr teuer, weil nämlich eine Kopie auf dem Stack angelegt wird.

C++:
void Funktion1(Klasse2[b]&[/b]);


Wäre ein Prototyp mit Referenz.

Dies wird aber vermutlich nicht die Ursache für den Syntaxerror sein, weil ohne das Referenzzeichen & kann es dir zur Compiletime höchstens Passieren, daß der CopyCtor nicht public ist und damit für dich nicht zugreifbar. Ich würde mal so rein gefühlsmässig sagen, daß da noch weiter oben im Quelltext was krumm ist.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: