class SomeInterface {
public: virtual std::string getClassName() = 0;
virtual SomeInterface *createInstanceByClassName(const std::string className){
for (ClassType child: SomeInterface.children)
if (child::getClassName() == className)
return new child;
throw ClassNotFoundException();
}
}
Реально ли сделать подобное стандартными средствами C++ без дополнительных полей? Если нет, то какие наиболее короткие и понятные способы есть для этого? Может, для подобного паттерна есть название?