| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Наследование |
| Автор: FTK 13.6.2005, 18:30 | ||||||
| Всем Привет! Скажите пожалуйста, в чем отличие наследования:
от
и
Буду очень благодарен, если визуально поясните =)) |
| Автор: comcon1 13.6.2005, 18:57 | ||
Вот тебе пример. Стоит заменить спецификатор наследования с PUBLIC на PRIVATE или PROTECTED. И компилятор ругнется в помеченной мною строчке.
Добавлено @ 19:02 Вообще если ты наследуешь метод с каким-то спецификатором доступа: class A{ ... public: void metod(); .. }; А класс наследуешь, к примеру: class B: protected A { ... то public "умножить" на protected дает protected. И в классе B этот метод будет иметь аттрибут protected. А вообще есть таблица умножения для аттрибутов доступа. Посмотри ее в учебнике. Вот. |
| Автор: FTK 13.6.2005, 19:05 | ||
| Так в чем же разница? Если наследование public, то доступ тоже только к public? Я что-то опять ничего не понял....
=) |
| Автор: comcon1 13.6.2005, 19:09 |
| Смотри. В моем примере. метод pubfunc() имеет аттрибут public. Если я наследую класс как public, то public умножить на public будет public. И через производный класс я получаю доступ к pubfunc(). Теперь, если я наследую класс как private, то private умножить на public будет private и через производный класс я доступ к pubfunc() НЕ ПОЛУЧАЮ. И компилятор ругается на ту строчку, где я указал Попробуй написать и ставить разные аттрибуты - сам увидишь, когда открывается тебе доступ, когда нет. |
| Автор: FTK 13.6.2005, 19:13 |
| Теперь понял. Тогда еще вопрос: А где найти эту таблицу? Может есть электронная версия у тебя? Thanks for all, who have ever helped me/// |
| Автор: comcon1 14.6.2005, 09:43 |
| Private x (something) = private Public x public = public Protected x (Public or Protected) = protected |
| Автор: FTK 15.6.2005, 00:48 |
| comcon1 Благодарю за помощь, теперь уж точно все ясно |