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; // ошибка компиляции
}