Funktion in Funktion



  • Tutorial 1
    Tutorial 2
    Tutorial 3

    Das beantwortet alles, was du bisher gefragt hast und vermutlich auch alle anderen Fragen, die du uns sonst in den nächsten zwei Wochen stellen würdest.



  • Danke, dann muß ich umdenken.



  • Bekell schrieb:

    Die Deklaration hab ich daraufhin geändert.

    1

    int MonatstageszaehlerQ (int tzmq, int mq); //zaehlt bis 30/31
    

    Es passiert trotzdem keine Übergabe....

    Wie meinst du das? Wenn du die Funktion aufrufst, sind 2 int-Parameter zwingend erforderlich, und die werden ganz sicher auch übergeben, darauf würde ich einen mittelhohen Geldbetrag setzen.



  • Genau mit dem ersten Tutorial arbeite ich.

    Es beantwortet aber nicht die Frage, ob ein Funktion in ihrem Rückgabewert, diesen nur in die Funktion zurückgibt, aus der sie heraus aufgerufen worden ist, oder ob sie den returnWert nach Main zurückgibt und alle Funktionen verfügbar macht.



  • Das hängt davon ab, wie du mit dem Rückgabewert umgehst.

    int func()
    {
       return 7;
    }
    
    int gunc( int param )
    {
       return 2 * param;
    }
    
    // globale Variable
    int global_int;
    
    int main()
    {
       // Szenario 1: Rückgabewert wird ignoriert und geht verloren
       func();
    
       // Szenario 2: Rückgabewert wird in lokaler Variable abgelegt
       int local_int = func(); 
    
       // Szenario 3: Rückgabewert wird in globaler Variable abgelegt
       global_int = func();
    
       // Szenario 4: Rückgabewert wird als Parameter benutzt
       //             Der Rückgabewert von gunc() kann wieder wie in Szenario 1-3 behandelt werden
       gunc( func() );
    }
    

    Anhängig davon, ob und wo du den Rückgabewert der Funktion ablegst steht er dir in verschiedenen Programmteilen zur Verfügung (oder auch nicht).
    Grundsätzlich sind Rückgabewerte von Funktionen nur durch direkte Zuweisung an Variablen speicherbar, wenn du den Rückgabewert nicht auswertest geht er verloren. Wo der Rückgabewert schliesslich zur Verfügung steht hängt vom (Ohgott... wie heisst scope denn wohl auf deutsch?) Gültigkeitsbereich der verwendeten Variable ab.



  • Bekell schrieb:

    return(tzmq, mq)
    

    Was ist das denn? Kein Wunder das du keinen Wert kriegst.



  • Ich glaube er möchte, dass die Werte in main() ebenfalls verändert werden.

    Falls dies der Fall ist, musst du deine Parameter als Referenzen übergeben:

    void myFunction(int& bla, int& bla2);
    


  • Genauso hab ichs geschrieben

    [code]void MonatstageszaehlerQ (int tzmq)[quote]

    aber es funktinoert nicht die Weitergabe.

    ich bin am suchen, wie genau man eine globale oder lokale Variable deklariert und definiert.

    Ich brauche jedenfalls zwei variablen, die ich in jeweils zwei Funktionen nutzen kann. Kann eigentlich nicht so schwer sein.
    Soll der Unterstrich "_" die Deklaration der glob. Var. sein? oder das das: "_int" ?



  • Bekell schrieb:

    Genauso hab ichs geschrieben

    Nein, hast du nicht (Vergleich nochmal).

    Und wenn du endlich mal den Thread wirklich lesen würdest, die Ratschläge und Links nachschaust, würdest du auch weiter kommen. Hilfe für jemanden, der nicht an Hilfe (solange sie nicht komplett vorgekaut wird - und selbst das scheint ja nichts zu bringen) interessiert ist, ist reine Zeitverschwendung.



  • Bekell schrieb:

    Genauso hab ichs geschrieben

    void MonatstageszaehlerQ (int tzmq)

    aber es funktinoert nicht die Weitergabe.

    ich bin am suchen, wie genau man eine globale oder lokale Variable deklariert und definiert.

    Ich brauche jedenfalls zwei variablen, die ich in jeweils zwei Funktionen nutzen kann. Kann eigentlich nicht so schwer sein.
    Soll der Unterstrich "_" die Deklaration der glob. Var. sein? oder das das: "_int" ?

    DocShoe schrieb:

    Tutorial 1
    Tutorial 2
    Tutorial 3

    Mal Klartext:
    Dir fehlt soviel Basiswissen, dass es keinen Sinn macht dir helfen zu wollen. Du wirst dein Programm irgendwann zum Laufen bringen und es wird funktionieren, aber nicht weil du es programmiert hast, sondern weil du solange Codeschnipsel aus dem Forum zusammengetragen hast, bis alles klappt.
    Deine Aufgabe ist leichter als trivial, aber ohne die elementarsten C++ Kenntnisse wirst du´s nicht schaffen sie zu lösen. Und bevor du weiter wie ein Affe auf die Schreibmaschine hämmerst setz´ dich doch erst einmal hin und arbeite die Tutorials durch. Der Hinweis kam schon heute morgen, und jetzt postest du wieder irgendwelche Probleme, die deutlich zeigen, dass du entweder kein Blick in die Tutorials geworfen hast oder sie nicht verstehst. Nimm dir mal zwei, drei Tage Zeit und gehe die Tutorials durch, programmier' die Beispiele nach und löse ggf. Übungsaufgaben am Ende jedes Kapitels (wenn es welche gibt, so weit habe ich mir die Tutorials nicht angesehen).


Anmelden zum Antworten