Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


Share this Page URL
Help

8. Relikte aus alten Zeiten: Die C++-Fun... > 8.5 Rückgabewerte von Funktionen - Pg. 228

Kapitel 8 Relikte aus alten Zeiten: Die C++-Funktionen if (args->Length > 1 && args[0] == "Visual" && args[1] == "C++") { // Hauptfenster erstellen und ausführen Application::Run(gcnew Form1()); return 0; } else { MessageBox::Show("Falscher Parameter"); return 0; } } 8.5 Rückgabewerte von Funktionen Methoden und Funktionen können einen Wert zurückgeben, das wissen Sie ja und Sie haben solche Methoden in Ihren Programmen ja auch schon eingesetzt. Erinnert sei etwa an die Methode GetType() , die ein Type-Objekt zurückliefert, das den .NET-Datentyp einer Instanz repräsentiert oder an die Kon- vertierungsmethoden der Klasse Convert , die einen entsprechend konvertierten Wert des übergebenen Parameters zurückliefern. Genauso verhält es sich bei der Next() -Methode des Random -Objekts, die eine Zufallszahl erzeugt. Random ^zufall = gcnew Random(); int zufallszahl = zufall->Next(); Was Sie noch nicht wissen ist, wie solche Funktionen bzw. Methoden im Code definiert werden. Nehmen wir als einfaches Beispiel eine Funktion, die das Produkt von zwei ganzen Zahlen ausrechnet. Mit dem, was Sie bis jetzt gelernt haben, könnten Sie lediglich erreichen, dass die Funktion ­ nennen wir sie berechne_produkt() ­ das Berechnungsergebnis ausgibt. void berechne_produkt(int a, int b) { MessageBox::Show((a * b).ToString()); } berechne_produkt(2, 3); // Ausgabe: 6 Sie könnten die so eingerichtete Funktion berechne_produkt() aber nicht dort einsetzen, wo ein Wert erwartet wird ­ also zum Beispiel auf der rechten Seite einer Zuweisung ­, da ein Aufruf dieser Funktion im Code nicht für einen Wert steht, weil sie eben keinen solchen zurückliefert. int zahl = berechne_produkt(9, 11); // FEHLER In einigen speziellen Fällen mag eine Funktion oder Methode, die eine Berechnung durchführt und aus- gibt, ohne das Ergebnis als Rückgabewert zu liefern, auch den gewünschten Zweck erfüllen. Im Allge- meinen ist eine Funktion, die Ausgaben produziert, aber nur sehr eingeschränkt verwendbar. Dies gilt sogar für den Fall, dass die Funktion zusätzlich einen Rückgabewert liefert. Wenn man eine Funktion innerhalb komplexer Berechnungen einsetzt, dann möchte man in der Regel nicht, dass dies mit Aus- gaben verbunden ist. In diesem Fall ist es erforderlich, dass die Funktion die gewünschte Information per Rückgabewert an den Aufrufer übermittelt, ansonsten aber keine weiteren Nebeneffekte produziert. Bei Bedarf steht es dem Programmierer ja frei, den Rückgabewert der Funktion mit entsprechenden Methoden ( MessageBox::Show() bzw. für Konsolenprogramme Console::Write() oder Console::WriteLine() ) auszugeben oder in einem Steuerelement anzuzeigen. 228