Параметры по умолчанию с C + + конструкторы

это хорошая практика, чтобы иметь конструктор класса, который использует параметры по умолчанию, или я должен использовать отдельные перегруженных конструкторов? Например:

// 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)
    {
        ...
    }
};

любой версии, кажется, работает, напр.:

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

какой стиль вы предпочитаете или рекомендовать и почему?

Найдено 12 ответов:

Default parameters with C++ constructors

http://stackoverflow.com/questions/187640/default-parameters-with-c-constructors

Посмотреть решение →