既定のパラメーターを使用するクラス コンストラクターを使用することは良い習慣ですか、それとも別のオーバーロードされたコンストラクターを使用する必要がありますか? 例えば:
// 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);
どのスタイルが好みまたは推奨されますか?その理由は?