Есть некоторые классы:
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();