vector default-parameter



  • wie schafe ich es eine vector datei als deault-parameter aus zu geben

    class My{
       My(int code1 = 0,int code2 = 0,std::vector<unsigned int> code);
    }
    My::My(int code1 = 0,int code2 = 0,std::vector<unsigned int> code){}
    

    default argument missing for parameter 3 of `My(int, int, std::vector<unsigned int, std::allocator<unsigned int> >)'



  • Wenn ich das richtig verstanden habe geht sowas irgendwann mal mit C++0x

    Bis dahin kannst du keine default-Werte für einen Vector verwenden.



  • Wieso sollte das nicht gehen??? Bin jetzt etwas verwirrt...

    #include <vector>
    
    void foo(int x = 0, std::vector<int> v = std::vector<int>())
    {
    }
    
    int main()
    {
        foo();
    }
    

    Oder habe ich die Fragestellung falsch verstanden?

    Ansonsten behilft man sich üblicherweise mit einem Overload, wenn man z.B. Elemente in dem vector drin haben möchte, und keinen globale Variablen verwenden möchte um den default Wert zu initialisieren.



  • das eigentliche problem ist, dass parameter ohne default belegung nicht nach parametern mit default belegung folgen dürfen. also entweder dem vector auch eine default belegung spendieren, wie von hustbaer demonstriert, oder den vector an den anfang der parameterliste stellen.



  • hustbaer schrieb:

    Wieso sollte das nicht gehen??? Bin jetzt etwas verwirrt...

    Ich nehm alles zurück - zu kompliziert gedacht



  • es klappt ^^
    THX


Anmelden zum Antworten