Наследование C++

255
12 июня 2017, 22:23

Например, подкласс наследует поля и методы надкласса, а другой класс, наследует поля и методы предыдущего подкласса(который наследует надкласс), будет ли этот под класс наследовать поля и методы надкласса тоже?

C будет иметь доступ к полям и методам класса A?

Answer 1

Давайте разберёмся. Начнём с того, что в С++ есть три модификатора доступа к методам и полям класса (public, private и protected), а также три различных наследования(public, private и protected).

Начнём с самого простого. С public наследования. Итак пусть класс B публично наследуется от класса A. Тогда public и protected методы и поля класса А становятся соответствующими полями класса B. А private поля класса A недоступны из класса B.

private наследование. В результате такого наследования public и protected методы и поля класса А становятся private для класса B. А private поля из класса A недоступаны в классе B

Самое редкое protected наследование. private поля базового класса всё также недоступны из класса наследника. А protected и public поля базового класса переходят в protected поля класса наследника.

То есть на такой вопрос невозможно дать однозначный ответ. Чтобы понять, какие поля и методы будут доступны, нужно определить, какими эти поля являются в классе A и какое наследование определено между классами A и B, а также B и C.

Ссылки:
Про модификаторы доступа и наследование
Пример с последовательным наследованием

READ ALSO
Разные шаблоны для вывода записей WordPress

Разные шаблоны для вывода записей WordPress

Как можно вывести цикл записей с двумя разными шаблонами? Мне нужно чтобы все четные были с одним шаблоном - нечетный с другимБуду благодарен...

259
Строгое сравнение в min-width и max-width

Строгое сравнение в min-width и max-width

Если одновременно использовать @media (max-width: 1000px) и @media (min-width: 1000px), то при ширине ровно 1000px будут выполняться оба правила

284
SASS Grid Layout

SASS Grid Layout

Здравствуйте! Подскажите, что-то не могу найти, как включить в sass, чтобы он квадратные скобки нормально понимал?

300