Standardparameter mit C ++ - Konstruktoren

Ist es gute Praxis, einen Klassen-Konstruktor verwendet, default-Parameter, oder sollte ich separate überladene Konstruktoren? Zum Beispiel:

//Use this...
class foo  
{
private:
    std::string name_;
    unsigned int age_;
public:
    foo(const std::string& name = "", const unsigned int age = 0) :
        name_(name),
        age_(age)
    {
        ...
    }
};

//Or this?
class foo  
{
private:
    std::string name_;
    unsigned int age_;
public:
    foo() :
    name_(""),
    age_(0)
{
}

foo(const std::string& name, const unsigned int age) :
        name_(name),
        age_(age)
    {
        ...
    }
};

Entweder version scheint zu funktionieren, z.B.:

foo f1;
foo f2("Name", 30);

Welchen Stil Sie bevorzugen bzw. empfehlen und warum?

InformationsquelleAutor der Frage Rob | 2008-10-09

Schreibe einen Kommentar