Sobes.tech
Junior — Middle
123

Pourriez-vous expliquer le concept d'héritage privé en programmation orientée objet?

Réponse de l'IA

sobes.tech IA

Приватное наследование — это механизм в 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(); // ок
}

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