Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > protected и private наследование


Автор: Graf_h 26.5.2008, 17:36
В каких случаях его использовать?

Автор: rrrFer 26.5.2008, 17:47
Graf_h, 
http://alenacpp.blogspot.com/2006/03/blog-post_11.html
Цитата

В каких случаях его использовать

зависит от ситуации наверно smile отличаются они только тем, как преобразовываются спецификаторы доступа. чаще всего думаю используется public-наследование(когда спецификаторы сохраняются)

Автор: mes 26.5.2008, 17:51
ограничение доступа:
   к секции private не имеет доступ никто кроме обьектов и друзей этого класса 
   к секции protected: имееют доступ те кто имеют доступ к private плюс наследники
   к секции public имееют доступ все

применение  :
    в private помешаются все данные, а также методы узкоспециализированные для этого класса
    в protected:  специализированные методы которые должны/могут использоваться и/или перегрузиться в наследниках
    в public:         открытый интерфейс, удобный для применения не зная устройства класса

Добавлено через 6 минут и 41 секунду
вышеприведенное справедливо когда описываешь тип объекта
если нужен тип блока данных то все данные помещаются в public : ( остальные секции используются редко)

Добавлено через 11 минут и 2 секунды
оп сорри не так прочитал тему не доконца

public наследование когда ты хочешь сохранить интерфейс наследуемоего класса 
private и protected наследование тогда когда нужна реализация но интерфейс предка хочется скрыть
вместо него обычно используется включение, за исключением тех случаев когда надо перегрузить виртуалэные функции

Автор: H4nter 26.5.2008, 21:02
Хочется еще добавить, что protected наследование используется довольно таки редко, и в основном, чтобы скрыть интерфейс базового класса,  но получить "сквозной" интерфейс классов при наследовании. Оно закрывает public данные базового класса в protected секции наследника.

Автор: Graf_h 27.5.2008, 09:20
Всем спасибо smile !Теперь все ясно!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)