Если класс описан как базовый ($$r.10) по отношению кдругому классу с помощью спецификации доступа public, то члены соспецификацией public или protected из базового класса являютсясоответственно членами с той же спецификацией для производного класса.Если класс описан как базовый по отношению к другому с помощьюспецификации доступа private, то члены со спецификацией public илиprotected из базового класса являются членами со спецификациейprivate для производного класса. Частные члены базового классаостаются недоступными даже для производных классов, если только дляобеспечения доступа при описании базового класса не было использованоописание friend. Если для базового класса не указана спецификация-доступа, тодля производного класса, если он описан как struct, предполагаетсяспецификация public, а если он описан со служебным словомclass, то - спецификация private, например: class B { /*... */ }; class D1: private B { /*... */ }; class D2: public B { /*... */ }; class D3: B { /*... */ }; // `B' частный по определению struct D4: public B { /*... */ }; struct D5: private B { /*... */ }; struct D6: B { /*... */ }; // `B' частный по определению Здесь класс является общим (public) базовым классом для D2, D4 и D6и частным (private) базовым классом для D1, D2 и D5. Описание базового класса как private не влияет на доступ кстатическим членам базового класса. Однако, если при обращении кстатическому члену используется объект или указатель, которыйнужно преобразовывать, то действуют обычные правила преобразованияуказателей. В функциях-членах или друзьях класса X можно X* неявнопреобразовывать в указатель на частный класс, являющийсянепосредственно базовым по отношению к X.