ubuntuusers.de

C++: Returnwert einer Funktion nicht sichtbar.

Status: Gelöst | Ubuntu-Version: Xubuntu 12.04 (Precise Pangolin)
Antworten |

selma89

Anmeldungsdatum:
30. März 2011

Beiträge: 101

Moin!

Ich bin neu in C++ und habe ein kleines Verständnisproblem. Ich habe eine Klasse mit der privaten Variablen int stand und im public-Bereich eine Funktion int getValue(). Wenn ich meine Funktion nur mit {return stand;} definiere, läuft mein Programm zwar einwandfrei, jedoch wird der returnwert, also stand, nur im Hintergrund gespeichert. Sollte return den Wert nicht auch in die Ausgabe packen, damit man ihn sieht? Oder geht das nur über cout?

Danke!

Faktor_1

Anmeldungsdatum:
21. Oktober 2009

Beiträge: 21

Den Wert auch auszugeben geht nur über cout (oder cerr), etwa

1
2
3
4
int getValue() {
  cout << stand;
  return(stand);
}

selma89

(Themenstarter)

Anmeldungsdatum:
30. März 2011

Beiträge: 101

Danke!

Gibt es denn auch keine Probleme, wenn ich mit dem returnwert der Funktion weiterrechnen will? Beispielsweise getValue()+3? Stelle mir das komisch vor, wenn da noch ein cout drin steckt und ich damit rechne...

Faktor_1

Anmeldungsdatum:
21. Oktober 2009

Beiträge: 21

Das gibt keine Probleme, da der Wert der Variablen nach cout kopiert wird und daher keinen Einfluss auf Manipulationen nach dem cout hat. Nach der Funktion (die, da zu einer Klasse gehörend, eine Methode ist) kann man mit dem Rückgabewert der Funktion weiterrechnen. Der Rückgabewert ist technisch gesehen eine andere Variable, in die der Wert der Variable stand der Klasse hineinkopiert wird.

Im Zweifelsfalle einfach mal mehrere Varianten durchprobieren.

P.S. Wenn der Wert der Variablen nicht jedesmal beim Aufruf von getValue() ausgegeben werden soll, empfielt es sich, die Ausgabe entweder im Hauptprogramm zu machen oder eine zweite Methode (z. B. gatValue_dbg()) zu definieren, die dann nur zu debugging-Zwecken aufgerufen wird.

selma89

(Themenstarter)

Anmeldungsdatum:
30. März 2011

Beiträge: 101

Super, vielen Dank! Jetzt weiß ich bescheid.

Antworten |