mögliche Parameter in Deklaration einer Funktion?



  • Ich habe folgende Definition einer Funktion:

    int funktion(int zahl = 10)
    {
      //...
    }
    

    Wenn ich jetzt die Deklaration folgendermaßen schreibe:

    int funktion(int );
    

    und die Funktion folgendermaßen aufrufe:

    int rueckgabe = funktion();
    

    dann will er, dass ein Wert übergeben wird.
    Ich möchte hier aber keinen Wert übergeben, sondern den Default Wert so lassen.

    Wie muss die Deklaration aussehen?



  • Bsp:

    #include <iostream>
    using namespace std;
    
    int a(int Parameter=10); 
    // int a(int = 10); geht auch
    
    int main(int argc, char *argv[])
    {
     a();
     cin.get();
    }
    
    int a(int Parameter){
    cout <<   Parameter;
    return    Parameter;
    }
    

    MfG Max



  • Also ich arbeite eigentlich mit BCB, aber dachte, dass die Frage eher hier reingehört.

    Auf jeden Fall habe ich das so versucht, wie du es gesagt hast, aber da kam immer ein Fehler "Vorgabewert für Parameter ... redeklariert".

    Ich habe den Default Wert jetzt einfach in der Deklaration weg gelassen und nur in der Definition sehen gelassen. So geht es jetzt.

    Trotzdem Danke.



  • Richtig, Default-Parameter schreibt man NUR in den Funktionskopf der Definition, nicht in den der Deklaration.



  • Jo hatte mich auf was falsches bezogen, ist nun ausgebessert.

    MfG Max



  • Der Defaultwert gehört auf jeden Fall in die Deklaration. Das ist ja auch das einzige was vor dem Aufruf bekannt sein muss, und wenn du da den Defaultparameter noch nicht hast, dann weiß der Kompiler ja garnicht das die Funktion ohne Wert aufrufbar ist. Also so:

    //Deklaration
    void funktion(int i = 10);
    
    int main()
    {
        funktion();
        return 0; 
    }
    //Definition
    void funktion(int i){
    	cout<<i<<endl;
    }
    

    Gruß
    Entyl Sa



  • Ok, also danke für den schnellen Support und da hätte ich auch selbstz drauf kommen können/müssen.

    Es sind die kleinen Dinge, die einem programmieren schwer machen, besonders wenn man sich noch nicht auskennt.

    MfG

    Knowman


Anmelden zum Antworten