名前付きコンストラクタ
引数コンストラクタに名前を持たせようというものです
#include <string> using namespace std; class person { public: static person create_man(int age, const string& name) { return person(age, name, true); } static person create_woman(int age, const string& name) { return person(age, name, false); } private: person(int age, const string& name, bool sex) : age_(age), name_(name), sex_(sex) {} int age_; string name_; bool sex_; // true:man false:woman }; int main() { person johnny = person::create_man(38, "ジョニー"); person millia = person::create_woman(18, "ミリア"); return 0; }
参考サイト
What is the "Named Constructor Idiom"?