2010-10-19 2 views
4

У меня есть унаследованного кода, что я должен обернуть, и я наткнулся на эту декларацию:Спецификатор доступа наследования по умолчанию C++?

class Foo : Bar 
{ 
    // ... 
}; 

Это кажется компилировать под GCC. Я знаю, что это плохо, но я не могу его изменить. Мой вопрос: если нет спецификатора доступа наследования, как его обрабатывает компилятор C++?

+3

На самом деле, я бы сказал, что это * не * плохо. Я бы назвал избыточное указание спецификатора доступа плохим. –

+0

Возможный дубликат [Доступ к наследованию класса по умолчанию] (http://stackoverflow.com/questions/3811424/default-class-inheritance-access) –

ответ

8

BTW, он не называется модификатором доступа. Это называется спецификаторомом

доступа $ 11,2/2 - «В отсутствии доступа спецификатор для базового класса, общественности предполагаются, когда производная класса определяются с классом ключом структуры и частной предполагается, когда класс определяется классом класса . "

В вашем контексте, «Bar» является частным базовым классом «Foo»

9

Для классов по умолчанию private.

Для структур, по умолчанию public.

Смежные вопросы