Назад к вопросам
Junior — Middle
91
Мог ли бы ты объяснить концепцию приватного наследования в объектно-ориентированном программировании?
Ответ от нейросети
sobes.tech AI
Приватное наследование — это механизм в C++, при котором все публичные и защищённые члены базового класса становятся приватными членами производного класса.
Это означает, что:
- Внешний код не может обращаться к базовым членам через объект производного класса.
- Производный класс может использовать базовые члены внутри себя, но не раскрывает их интерфейс наружу.
Пример:
class Base {
public:
void publicMethod() {}
protected:
void protectedMethod() {}
};
class Derived : private Base {
public:
void useBase() {
publicMethod(); // доступно внутри класса
protectedMethod(); // доступно внутри класса
}
};
int main() {
Derived d;
// d.publicMethod(); // ошибка: publicMethod стал приватным в Derived
d.useBase(); // ок
}
Приватное наследование используется, когда нужно реализовать функциональность базового класса внутри производного, но не показывать её как часть интерфейса производного класса. Это отличается от публичного наследования, где интерфейс базового класса становится частью интерфейса производного.