Methodenaufruf



  • Hi,

    wenn man eine Methode hat die z.B. eine unterschiedliche Anzahl an Parametern annehmen kann - verwendet man dann in C++ drei Methoden oder schreibt man die Methoden mit Defaultparametern und checkt dann in der Methode mit if() Clauses wieviele Parameter wirklich vorhanden sind?

    SetValue(int value1, int value2, int value3, int value4);
    

    Diese Funktion kann bzw. soll aufgerufen werden mit zwei Parametern, drei, und vier Parametern.

    Mfg
    Patrick


  • Administrator

    Wenn die Funktion abhängig von den Anzahl Parameter unterschiedliches macht, dann macht man unterschiedliche Funktionen. Wenn man einfach nur einen Default-Wert übergibt, der Funktion aber egal ist, wieviele Werte übergeben wurden, dann kann man Default-Werte nehmen.

    Grüssli



  • Überladen.



  • Dravere schrieb:

    Wenn die Funktion abhängig von den Anzahl Parameter unterschiedliches macht, dann macht man unterschiedliche Funktionen. Wenn man einfach nur einen Default-Wert übergibt, der Funktion aber egal ist, wieviele Werte übergeben wurden, dann kann man Default-Werte nehmen.

    Grüssli

    ok, d.h. die Funktion entsprechend überladen

    SetValue(int value1, int value2, int value3, int value4); 
    SetValue(int value1, int value2, int value3); 
    SetValue(int value1, int value2);
    

    Mfc
    Patrick



  • Käme sowas vielleicht auch infrage?

    x.SetAttr1( 1 );
    x.SetAttr2( 2 );
    x.SetAttr3( 3 );
    x.SetAttr4( 4 );
    
    x.Update();
    

    Mit einer Funktion 4 Parameter zu setzen löst bei mir immer etwas Unbehagen aus.
    Ggf. kann der Update() Aufruf noch in den SetAttrX() Rumpf wandern, damit der Clientcode das Update() "vergessen" darf.


Anmelden zum Antworten