Frage: Welche der folgenden Function-Prototypen ist einsetzbar? 1) void prodsum (int k1, int k2, float x, float y); 2) int prodsum (float k1, float k2, float x, float y); 3) float prodsum (float &k1, float &k2, float x, float y); 4) int prodsum (float k1, float k2, float &x, float &y); 5) void prodsum (float k1, float k2, int x, int y);
Ich würde ja sagen, einer der beiden void Funktionen, da prodsum alleine da steht. Aber welche?
Ich klamüsers auseinander.
In Produkt und Summe sind die jeweiligen Ergebnisse nach dem Funktionsaufruf. Da 2 Werte zurückgegeben werden sollen, kommt nur eine Rückgabe in Frage: Call by Reference. Bei C wird die Referenzübergabe via & gemacht. Man könnte zwar auch nen komplexen Datentyp nehmen (struct), aber dies ist hier nicht gegeben.
Die verwendeten Datentypen sind alle float (wobei float auch int beinhaltet bzw. eine fliessende Konvertierung int -> float möglich ist, ohne dass die Zahlen verfälscht werden).
Ergo kommt nur Lösung 4 in Frage.
2 lässt sich zwar anstandslos kompilieren, nur ist das Ergebnis nicht das gewünschte.
Das 4 dennoch mit Rückgabewert funktionert, liegt daran, dass dies bei C ignoriert werden kann - ausser man macht ne Auswertung des Rückgabewertes.
Xanlosch's Home - Fortombla hortomosch ! Kein Support via Foren-PM - postet mehr im Forum.