Product* MyCreator::Create (Productld id) { if (id == YOURS) return new MyProduct; if (id == MINE) return new YourProduct; // ! YOURS и MINE переставлены if (id == THEIRS) return new TheirProduct; // вызывается, если больше ничего не осталось return Creator::Create(id); }