![]() |
От: | gencoder | |
Дата: | 13.01.17 12:51 | ||
Оценка: |
// ...
{ // начало блока A
vector<std::shared_ptr<Base>> v;
v.push_back(std::shared_ptr<Base>(Base::create(23)));
v.push_back(std::shared_ptr<Base>(Base::create(25)));
v.push_back(std::shared_ptr<Base>(Base::create(33)));
for( auto e: v ) e->foo();
} // конец блока A
//...
enum ID { SomeID1=23 /* ... */ };
Base* Base::create( ID id )
{
Base * p;
switch( id )
{
case SomeId1: p = new /* ... */ break;
// ...
}
return p;
}