C++ Funktionen

DasBoeseLebt

Lieutenant
Dabei seit
Jan. 2010
Beiträge
686
Man brauch nicht mal Templates, sondern man übergibt einfach Zeiger, damit kann die Funktion dann auch mehr als nur 1 ,Rückgabewert' haben.
Die Frage ist dann nur die Sauberkeit des Codes und wenn man es nicht massiv übertreibt, schneller, kürzer und übersichtlicher.

Das Vorgehen wird aber auch in diesem Buch nochmal erklärt, auch, wo es sinnvoll ist und wo nicht unbedingt! : )
 
Zuletzt bearbeitet:

antred

Lt. Commander
Dabei seit
Juni 2010
Beiträge
1.288
Man brauch nicht mal Templates, sondern man übergibt einfach Zeiger, damit kann die Funktion dann auch mehr als nur 1 ,Rückgabewert' haben.
Die Frage ist dann nur die Sauberkeit des Codes und wenn man es nicht massiv übertreibt, schneller, kürzer und übersichtlicher.
Na ja, ob

Code:
void func( int& a, double& b )
{
    a *= 5;
    b += a * 4;
}
jetzt wirklich übersichtlicher ist als

Code:
const std::pair< int, double > func( int a, double b )
{
    const int res = a * 5;
    return std::pair< int, double > ( res, b + ( res * 4 ) );
}
sei mal dahingestellt. Die Definition der 1. Funktion ist in diesem Fall sicherlich etwas leichter zu lesen als die der 2., aber am Aufrufort vermittelt ...

Code:
const std::pair< int, double > result = func( intVar, doubleVar );
deutlicher einen Eindruck von dem, was passiert, als

Code:
func( intVar, doubleVar );
und hat obendrein noch den Vorteil, daß man als Argumente auch Literale (also 12, 454.765, etc.) verwenden kann, während man der Referenz-Parameter-Lösung nur Variablen übergeben kann.
 

Zephiro

Cadet 2nd Year
Ersteller dieses Themas
Dabei seit
Mai 2009
Beiträge
19
OK danke für die umfangreiche Hilfe :D.
Thread kann geclosed werden.
 
Top