Назад к задачам
Junior — Senior
7

Оптимизация и исправление кода (вариант 4)

Компании, где спрашивали:

Финам
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо переписать представленный фрагмент, устранив ошибки управления памятью и нарушения принципов ООП.

class Foo
{
public:
    Foo(int j) { i = new int[j]; }
    ~Foo() { delete i; }
private:
    int* i;
};

class Bar : Foo
{
public:
    Bar(int j) { i = new char[j]; }
    ~Bar() { delete i; }
private:
    char* i;
};

void main()
{
    Foo* f = new Foo(100);
    Foo* b = new Bar(200);
    *f = *b;
    delete f;
    delete b;
}