Прочитав несколько статей по этому поводу не могу сказать, что точно все понял. Такая конструкция
class Child : private Parent ...
сделает все публичные элементы родителя приватными у наследника? И так же, если там указать public или protected, то это влияет только на публичные родительские элементы или нет?
Ответ
private (закрытый, внутренний член класса) — обращения к члену допускаются только из методов того класса, в котором этот член определён. Любые наследники класса уже не смогут получить доступ к этому члену. Наследование по типу private делает все члены родительского класса (в том числе public и protected) private-членами класса-наследника (С++)
protected (защищённый, внутренний член иерархии классов) — обращения к члену допускаются из методов того класса, в котором этот член определён, а также из любых методов его классов-наследников. Наследование по типу protected делает все public-члены родительского класса protected-членами класса-наследника (С++)
public (открытый член класса) — обращения к члену допускаются из любого кода. Наследование по типу public не меняет модификаторов родительского класса (С++)
Таким образом, ответ на ваш вопрос: class Child : private Parent - да, такое наследование сделает все публичные элементы родителя приватными у наследника.
Комментариев нет:
Отправить комментарий