правый.
Теперь проверка реальности & hellip;
MinGW g ++ 4.4.1:
x.cpp: В функции 'int main ()':
x.cpp: 3: ошибка: void Base :: foo ()
недоступный
x.cpp: 15: ошибка: внутри
этот контекст
Visual C ++ 10.0:
x.cpp (15): ошибка C2248:
'Derived :: foo': не может получить доступ к частному
член объявлен в классе 'Производные'
x.cpp (9): см. объявление «Derived :: foo»
x.cpp (6): см. объявление «Derived»
Comeau Online 4.3.10.1:
В строгом режиме, с -tused, Compile
удалось (но помните, Comeau
онлайн компилятор не ссылается).
Скомпилировано с расширениями C ++ 0x
включен.
Oops . И Комо это почти всегда верно! Ну, отключение расширений C ++ 0x, для C ++ 98 / C ++ 03:
В строгом режиме, с -tused, Compile
удалось (но помните, Comeau
онлайн компилятор не ссылается).
Скомпилировано с расширениями C ++ 0x
Disabled.
Oops!
Ну, ты мой большой, как говорят в Норвегии (дословно переводится на английский).
Я бы попытался сообщить об этом Комо.
РЕДАКТИРОВАТЬ : поскольку Прасун также ответил, цитируя Священный Стандарт с его интерпретацией того, что противоречит тому, что я написал выше, хорошо, хорошо, standadese & hellip;
§11.3 / 1 «Доступ к члену базового класса может быть изменен в производном классе & hellip;» и т. Д., Что настолько ясно, насколько это возможно (интерпретация не требуется). И с конкретным примером. И нормативный текст о том, что это эквивалентно using
декларации.
Приветствия & hth.,