У меня сложное время с абстрактными массивами. В моем случае я хочу иметь 2D-массив абстрактного класса с именем Base
. Поэтому я сделал указатель на 2D-массив Base
в классе под названием Container
. Как получить доступ к элементам внутри массива? Кроме того, может кто-то подтвердить, что я правильно удаляю свой массив? Заранее благодарю за любую помощь!2D-массив абстрактного класса?
class Base
{
public:
virtual void abstract() = 0;
};
//----------------------------------
class Derived : public Base
{
public:
virtual void abstract();
};
void Derived::abstract()
{
// empty
}
//----------------------------------
class Container
{
public:
Board();
virtual ~Board();
Base* bases[8][8];
};
// Constructor
Container::Container()
{
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
bases[i][j] = new Derived();
}
// Destructor
Container::~Container()
{
for (int i = 0; i < 8; i++)
delete [] bases[i];
delete [] bases;
}
//----------------------------------
int main()
{
Container container;
}
Вы пробовали 'std :: vector >>'? –
moshbear
@moshbear У меня нет. Я дам вам попробовать –
@moshbear Так будет ли 'shared_ptr' обрабатывать проблемы с распределением памяти? –