LINUX.ORG.RU

C++ конструктор копирования

 ,


0

2

Есть некоторые классы:

class A {}; // тут есть virtual void method() = 0;
class B : public A {};
class C : public A {};

Есть контейнер для указателей:

class Container
{
    A **m_array;
    unsigned m_len;
public:
    Container(unsigned len = 10)
        : m_len(len)
    {
        m_array = new A *[m_len];
    }
    Container(const Container &o)
        : m_len(o.m_len)
    {
        // как тут правильно скопировать содержимое)?
    }
    A *at(unsigned i) {...}
    ~Container() {...}
};
Требуется скопировать содержимое, но оно является наследником изначального класса. Как правильно это делать? Т.е. содержимое является таким:
A *a = new B();

Deleted
Ответ на: комментарий от panter_dsd

А если с помощью

operator=
Как его правильно оформить (объявление)? Или лучше использовать метод clone()?

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.