Seite 1 von 1

Zeiger oder Referenz (hat Bezug auf QT)

Verfasst: 20. Oktober 2005 14:42
von klogg
Nun ist es ja so,
dass QT immer gerne Zeiger für alles mögliche verwendet. Keine Referenzen. Auch da nicht, wo irgendwas irgendwo reingeschrieben werden soll.
(Wenn ich nur die Adresse will, hole ich natürlich keine Referenz, ist klar)

Ich wollte jetzt gerne mal die Weisen dieses Forums fragen,
ob man denn bei eigenen QT Projekten auch lieber auf Referenzen verzichtet, zwecks Konsistenz oder eben nicht, zwecks irgendwas.

z.B.

Code: Alles auswählen

//Zeiger:
QString Klasse::getQuestion(int * ID)
{
  *ID = 7;              //da es ein Zeiger ist, erst dereferenzieren
  return "Ergebnis"; //QString zurückgeben
}

Code: Alles auswählen

//Referenz:
QString Klasse::getQuestion(int & ID)
{
  ID = 7;                //da es eine Referenz ist, einfach reinschreiben
  return "Ergebnis"; //QString zurückgeben
} 
Schön wären ein paar gute Argumente für dies oder das.
Persönlichen Geschmack hab ich selber... :wink:
Außerdem könnten Anfänger sich vielleicht ein Beispiel an diesem Thread nehmen.
Wer weiß...

HENNING

Verfasst: 20. Oktober 2005 14:56
von FlorianBecker
Also Referenzen nehme ich nur, wenn ich überhaupt keinen anderen Ausweg habe, also z.B. bei Plugins, wo ich einfach mehr als einen Wert unbedingt zurück brauche. Sonst überhaupt nicht.

Verfasst: 20. Oktober 2005 14:57
von Goos
FlorianBecker hat geschrieben:Also Referenzen nehme ich nur, wenn ich überhaupt keinen anderen Ausweg habe, also z.B. bei Plugins, wo ich einfach mehr als einen Wert unbedingt zurück brauche. Sonst überhaupt nicht.
Wieso das denn? *neugierigschau*

Goos

Verfasst: 20. Oktober 2005 15:00
von FlorianBecker
Naja, ich bezog das natürlich auf den Post. Das ich für alle nicht Objecte auch Referenzen benutzte sollte klar sein. Weil es immer bessere Lösungen gibt, aber das liegt wohl immer daran, wie man es gelernt hat.

Verfasst: 20. Oktober 2005 15:01
von Goos
Ich hab das so aufgefasst, als ginge es in dem Post um Pointer, oder Referenz uebergeben. Da bevorzugst du dann allen ernstes Pointer?

Goos

Verfasst: 20. Oktober 2005 15:10
von FlorianBecker
Ja, so kann man das verstehen. Aber wie gesagt, nur wenn ich keine andere Möglichkeit habe, denn meist löse ich das über einen return, eben nur wenn ich mehr als einen Wert zurück brauche nicht und das ist nur bei Plugins bei mir der Fall.

Re: Zeiger oder Referenz (hat Bezug auf QT)

Verfasst: 20. Oktober 2005 15:19
von Christian81
klogg hat geschrieben:

Code: Alles auswählen

//Zeiger:
QString Klasse::getQuestion(int * ID)
{
  *ID = 7;              //da es ein Zeiger ist, erst dereferenzieren
  return "Ergebnis"; //QString zurückgeben
}
Da fehlt was - und das ist mein Grund warum ich lieber Referenzen benutze :)

Code: Alles auswählen

QString Klasse::getQuestion(int * ID)
{
  if ( ID )
    *ID = 7;            //da es ein Zeiger ist, erst dereferenzieren
  return "Ergebnis"; //QString zurückgeben
}
[/code]