Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Rückgabewert
Forum Updated to NodeBB v4.3 + New Features

Rückgabewert

Scheduled Pinned Locked Moved Solved German
5 Posts 3 Posters 985 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    NotYourFan
    wrote on last edited by
    #1

    Hey,

    ich habe eine Funktion die drei Rückgabewerte besitzt. Diese sieht wie folgt aus:

    int XYZ::FunFunction(double &value1, double &value2, double &value3)
    

    an einer Stelle muss ich diese Funktion aufrufen und drei double werte mitgeben.
    An einer anderen Stelle muss ich nichts mitgeben.

    Meine frage nun:

    Wie muss ich die Funktion aufrufen ohne Werte mitzugeben?
    Wenn ich die Funktion normal aufrufe dann wird diese in QT gelb unterstrichen und ich erhalte eine Fehlermeldung das ich Werte mitgeben MUSS.

    J.HilkJ 1 Reply Last reply
    0
    • N NotYourFan

      Hey,

      ich habe eine Funktion die drei Rückgabewerte besitzt. Diese sieht wie folgt aus:

      int XYZ::FunFunction(double &value1, double &value2, double &value3)
      

      an einer Stelle muss ich diese Funktion aufrufen und drei double werte mitgeben.
      An einer anderen Stelle muss ich nichts mitgeben.

      Meine frage nun:

      Wie muss ich die Funktion aufrufen ohne Werte mitzugeben?
      Wenn ich die Funktion normal aufrufe dann wird diese in QT gelb unterstrichen und ich erhalte eine Fehlermeldung das ich Werte mitgeben MUSS.

      J.HilkJ Online
      J.HilkJ Online
      J.Hilk
      Moderators
      wrote on last edited by
      #2

      hi @NotYourFan

      In deiner Funktionsdefintion , definiere zusätzlich default Parameter
      https://en.cppreference.com/w/cpp/language/default_arguments

      Dann kannst du die Funktion auch aufrufen, ohne Parameter mit zu übergeben zu müssen.


      Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


      Q: What's that?
      A: It's blue light.
      Q: What does it do?
      A: It turns blue.

      1 Reply Last reply
      0
      • N Offline
        N Offline
        NotYourFan
        wrote on last edited by
        #3

        Hey,
        Danke für die schnelle Antwort :)

        Heißt für mich einfach ich nach folgendes:

        ....(Double Value1=0, Double Value2=0, Double Value3=0)
        

        ?

        J.HilkJ 1 Reply Last reply
        0
        • N NotYourFan

          Hey,
          Danke für die schnelle Antwort :)

          Heißt für mich einfach ich nach folgendes:

          ....(Double Value1=0, Double Value2=0, Double Value3=0)
          

          ?

          J.HilkJ Online
          J.HilkJ Online
          J.Hilk
          Moderators
          wrote on last edited by
          #4

          @NotYourFan
          wenn ich das richtig in Erinnerung hab, geht das mit Referenzen als argument nicht so einfach.

          ich würde empfehlen, pointer zu übergeben

          int FunFunction(double *value1 = nullptr, double *value2 = nullptr, double value3= nullptr)

          dann kannst in der Funktion selbst gegen nullptr prüfen und entscheiden.

          musst dann halt dementsprechend beim Aufruf dereferenzieren.

          double a,b,c;
          int result = FunFunction(&a, &b, &c);
          

          Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


          Q: What's that?
          A: It's blue light.
          Q: What does it do?
          A: It turns blue.

          KroMignonK 1 Reply Last reply
          1
          • J.HilkJ J.Hilk

            @NotYourFan
            wenn ich das richtig in Erinnerung hab, geht das mit Referenzen als argument nicht so einfach.

            ich würde empfehlen, pointer zu übergeben

            int FunFunction(double *value1 = nullptr, double *value2 = nullptr, double value3= nullptr)

            dann kannst in der Funktion selbst gegen nullptr prüfen und entscheiden.

            musst dann halt dementsprechend beim Aufruf dereferenzieren.

            double a,b,c;
            int result = FunFunction(&a, &b, &c);
            
            KroMignonK Offline
            KroMignonK Offline
            KroMignon
            wrote on last edited by KroMignon
            #5

            @J.Hilk said in Rückgabewert:

            wenn ich das richtig in Erinnerung hab, geht das mit Referenzen als argument nicht so einfach.

            Ja, das ist richtig ==> Default value to a parameter while passing by reference in C++

            Eine Lösung währe:

            public class XYZ
            {
                static const double defaultValue = 0.0;
            ...
            public:
                int FunFunction(double &value1=defaultValue , double &value2=defaultValue , double &value3=defaultValue );
            }
            

            It is an old maxim of mine that when you have excluded the impossible, whatever remains, however improbable, must be the truth. (Sherlock Holmes)

            1 Reply Last reply
            1

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved