C++ Funktionen

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:
DasBoeseLebt schrieb:
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.
 
OK danke für die umfangreiche Hilfe :D.
Thread kann geclosed werden.
 
Zurück
Oben