Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
6
Получение указателя на базовый класс при protected‑наследовании
Условие задачи
Перепишите приведённый пример, не меняя модификатор доступа protected на public. Нужно показать, почему при попытке создать объект наследника и присвоить его указателю базового типа возникает ошибка компиляции, и как можно обойти её, не меняя уровень доступа.
class Base {
public:
virtual ~Base() = default;
};
class Derived : protected Base {
};
void checkDerivedBase() {
Base* basePtr = new Derived; // ошибка компиляции
}