Например, подкласс наследует поля и методы надкласса, а другой класс, наследует поля и методы предыдущего подкласса(который наследует надкласс), будет ли этот под класс наследовать поля и методы надкласса тоже?
C будет иметь доступ к полям и методам класса A?
Давайте разберёмся. Начнём с того, что в С++ есть три модификатора доступа к методам и полям класса (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.
Ссылки:
Про модификаторы доступа и наследование
Пример с последовательным наследованием
Сборка персонального компьютера от Artline: умный выбор для современных пользователей