Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Funktion die zwei Werte zurückgeben kann?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.05.2005, 12:31 Uhr
JohnSilver



Hallo,

kann mir vielleicht jemand verraten wie ich es anstellen kann, dass eine Funktion zwei Werte zuückgibt? Insofern dies möglich ist!? Wenn dies nicht gehen sollte was mach ich dann am besten, wobei ich aber alles´am liebsten in einer Funktion haben möchte!?

Danke im voraus

John
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.05.2005, 13:11 Uhr
virtual
Sexiest Bit alive
(Operator)


Nehmen wir an, wir jhaben eine Funktion, die von zwei Integern Produkt (1. rückage) und Summe (2. Rückgabe) bilden soll.

1. Möglichkeit: Pointer

C++:
int summal(int a, int b, int*s) {
*s = a+b;
   return a+b;
}

...

int summe;
int product;

product = summal(17, 4, &summe);



2. Möglichkeit: Referenzen

C++:
int summal(int a, int b, int& s) {
   s = a+b;
   return a+b;
}

...

int summe;
int product;

product = summal(17, 4, summe);





3. Möglichkeit: Strukturen

C++:
struct summal_zurueck {
   int summe;
   int product;
}

summal_zurueck summal(int a, int b) {
   struct summal_zuruecks r  = { a+b, a*b };
   return s;
}

...

summal_zurueck s = summal(17, 4, summe);



--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.05.2005, 13:30 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Möglichkeit 4: Funktionale Programmiersprache verwenden
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.05.2005, 13:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


@virtual, ich glaub du brauchst mal nen neuen on-post-in-brain-compiler:

C++:
summal_zurueck summal(int a, int b) {
   struct summal_zuruecks r  = { a+b, a*b };
   return s;
}



entweder


C++:
summal_zurueck summal(int a, int b) {
   struct summal_zuruecks r  = { a+b, a*b };
   return r;
}



oder


C++:
summal_zurueck summal(int a, int b) {
   struct summal_zuruecks s  = { a+b, a*b };
   return s;
}


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.05.2005, 13:46 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

In C am besten mit Zeigern auf Variablen, die die Rückgabewerte erhalten sollen; in C++ kannst Du eine Instanz einer Struktur zurückgeben, in der mehrere Rückgabewerte verpackt sind (ka, ob das in C auch geht, probiers mal). Generell ist es aber kein besonders guter Stil, mehrere Rückgabewerte auf einmal zu haben; überdenk die Funktion lieber noch mal...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.05.2005, 13:53 Uhr
virtual
Sexiest Bit alive
(Operator)



Zitat von FloSoft:
@virtual, ich glaub du brauchst mal nen neuen on-post-in-brain-compiler:


Tja. Software verrottet mit dem Alter... warum solls mit der Biologischen Software anders sein?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.05.2005, 13:56 Uhr
Bruder Leif
dances with systems
(Operator)


Sch... neue Threads öffnen, dann Mittagessen, dann posten... sollte mir angewöhnen, die Threads vorher nochmal zu aktualisieren
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: