Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Were, Вы писали:
W>>В чем собственно проблема?
W>>W>>std::vector<Base*> arr2( arr1 );
W>>
А>В этом случае, если я не ошибаюсь, в обоих контейнерах будут указатели на одни и те же объекты в куче, а мне надо чтоб на разные
Паттерн прототип тогда в помощь )
class Base
{
public:
virtual Base* Clone() const
{
return new Base( *this );
}
};
class Derived1 : public Base
{
public
virtual Base* Clone() const
{
return new Derived1( *this );
}
};
class Derived2 : public Base
{
virtual Base* Clone() const
{
return new Derived2( *this );
}
};
for( std::vector<Base*>::iterator I = arr1.begin(); I != arr1.end(); I++ )
arr2.push_back( I->clone());