Sobes.tech
Junior — Senior

Получение указателя на базовый класс при protected‑наследовании

livecode

Condición de la tarea

Перепишите приведённый пример, не меняя модификатор доступа protected на public. Нужно показать, почему при попытке создать объект наследника и присвоить его указателю базового типа возникает ошибка компиляции, и как можно обойти её, не меняя уровень доступа.

class Base {
public:
    virtual ~Base() = default;
};

class Derived : protected Base {
};

void checkDerivedBase() {
    Base* basePtr = new Derived; // ошибка компиляции
}