Rückgabewerte einer Funktion



  • Ich hab da mal ein (eher dumme) Frage:

    Wieviele Rückgabewerte (return) kann man sich aus einer Funktion geben lassen ( Also auf einen schlage ). Ich habe nämlich eine riesige Abfrage mit mehreren Rückgabewerten ( die Variiren zwischen einer und max. acht werten ) und wollte diese aber nicht anndauernd ins Programm einfügen.

    Abfrage soll in etwa so aussehen:

    switch (wert)
    {
    case 1:
    BOOL Name = false;
    BOOL Name1 = true;
    BOOL Name2 = true;
    break;
    
    case 6:
    ...
    ...
    ...
    ...
    break
    ...
    ..
    .
    }
    

    Jedes Case hat unterschiedlich viele werte, die ich alle haben will.
    Gibt es da eine möglichkeit?

    Danke



  • Gib als Referenzparameter (mit &) ein Array mit.
    Wenn du CArray nimmst, kannst du die Größe dynamisch machen und evtl. schon was fertiges wie CUintArray nutzen. 🙂



  • Mit Arrays bin ich leider nicht so vertraut. Wie funktioniert denn das?



  • Eine lösung ist den Rückgabewert als "Referenz-Parameter" zu übergeben:

    bool Func(bool &b1, bool &b2, bool &b3)
    {
      b1 = false;
      b2 = true;
      b3 = false;
      return true;
    }
    

    Aufgerufen wird es dann wie folgt:

    bool b1;
    bool b2;
    bool b3;
    bool ret = Func(b1, b2, b3);
    


  • hmmm ob das so funktioniert wie ich das brauche...

    Mein Problem ist:

    Ich habe sagen wir 3 Buttons (Checkboxen) mit jeweils einem BOOL-Variable.
    Wenn ich mein Programm starte soll er mir einen wert aus der Registry auslesen (INT-Variable) und mit einer SWITCH-Anweisung soll er die Buttons je nach CASE in einem Bestimmten Zustand Ein/Ausschalten.

    z.B.

    CASE 3:
    BUTTON1 = true;
    BUTTON2 = true;
    BUTTON3 = false;
    break;
    

    nun weiß ich nicht ob man das überhaupt in eine Funtion einarbeiten kann, damit mir diese Abfrage, die ich öffter brauchen werde nicht jedesmal kopieren muss.

    Ich wer das mit den "Referenz-Parametern" mal probieren. Aber so wie ich das verstanden habe bekommt die Funktion dadurch die "Echte" variable und nicht irgendeine "Kopie" ?



  • Propier es doch einfach aus oder lies die Doku (http://msdn.microsoft.com/library/en-us/vclang/html/_pluslang_reference.2d.type_function_arguments.asp)bevor Du hier über lange theoretische Ansätze nachdenkst...



  • Uruk-h4j schrieb:

    Ich wer das mit den "Referenz-Parametern" mal probieren. Aber so wie ich das verstanden habe bekommt die Funktion dadurch die "Echte" variable und nicht irgendeine "Kopie" ?

    Das hast du richtig verstanden.
    Die Funktion muss ja die "echte" Variable bekommen, denn sonst könntest du nichts zurückgeben. 😉


Anmelden zum Antworten