Страницы

Поиск по вопросам

понедельник, 16 декабря 2019 г.

В C++ при наследовании определяется доступность только открытых элементов родителя?

#наследование #ооп #cpp


Прочитав несколько статей по этому поводу не могу сказать, что точно все понял. Такая
конструкция  

class Child : private Parent ...


сделает все публичные элементы родителя приватными у наследника? И так же, если там
указать public или protected, то это влияет только на публичные родительские элементы
или нет?
    


Ответы

Ответ 1



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

Комментариев нет:

Отправить комментарий