Wenn ein Compiler älterer Bauart auf eine cout Anweisung stößt, durchsucht er zuerst die komplette Zeile von rechts nach links auf etwaige Funktionen, dann werden die Daten nacheinander ausgegeben, von links nach rechts. Deshalb wird in Zeile 11 zuerst die Funktion Volumen() berechnet, und deren interne Ergebnisse werden ausgegeben. Dann werden die einzelnen Felder von cout von links nach rechts ausgegeben, "Einige Daten sind" also als nächstes. Schließlich wird der Rückgabewert von Volumen() im Format int, dem Typ des Rückgabewertes, ausgegeben. Das Resultat ist, daß die Ausgabe nicht in der erwarteten Reihenfolge erfolgt, wenn die Zeilen 11 bis 13 abgearbeitet werden. Neuere Compiler haben dieses Problem nicht. Die Ausgabe erfolgt in der intuitiv erwarteten Abfolge.
Zusätzlich haben wir weiland noch immer das Problem, das auftritt, wenn wir cout und printf() vermischen, wie in Kapitel 1 beim Programm NACHR.CPP besprochen. Schlußendlich werden aber alle standardkonformen Compiler dieses Problem überwinden.
Die Zeilen 15 bis 18 entsprechen den Zeilen 11 bis 13, nur sind die Anweisungen auf zwei Zeilen aufgeteilt, sodaß die Ausgabe in der erwarteten Reihenfolge erfolgt.
Kompiliere das Programm und führe es aus, wenn Du es verstanden hast. Die eigenartige Ausgabereihenfolge wird uns übrigens im Laufe dieser Einführung noch einmal begegnen.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 10. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Beschwerden?