Re[3]: Копирование контейнера указателей
От: Were  
Дата: 26.06.08 15:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, 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());
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.