![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| FTK |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 11.6.2005 Репутация: нет Всего: нет |
Всем Привет!
Скажите пожалуйста, в чем отличие наследования:
от
и
Буду очень благодарен, если визуально поясните =)) |
||||||
|
|||||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Вот тебе пример. Стоит заменить спецификатор наследования с PUBLIC на PRIVATE или PROTECTED. И компилятор ругнется в помеченной мною строчке.
Добавлено @ 19:02 Вообще если ты наследуешь метод с каким-то спецификатором доступа: class A{ ... public: void metod(); .. }; А класс наследуешь, к примеру: class B: protected A { ... то public "умножить" на protected дает protected. И в классе B этот метод будет иметь аттрибут protected. А вообще есть таблица умножения для аттрибутов доступа. Посмотри ее в учебнике. Вот. |
|||
|
||||
| FTK |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 11.6.2005 Репутация: нет Всего: нет |
Так в чем же разница? Если наследование public, то доступ тоже только к public?
Я что-то опять ничего не понял....
=) |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Смотри. В моем примере. метод pubfunc() имеет аттрибут public.
Если я наследую класс как public, то public умножить на public будет public. И через производный класс я получаю доступ к pubfunc(). Теперь, если я наследую класс как private, то private умножить на public будет private и через производный класс я доступ к pubfunc() НЕ ПОЛУЧАЮ. И компилятор ругается на ту строчку, где я указал Попробуй написать и ставить разные аттрибуты - сам увидишь, когда открывается тебе доступ, когда нет. |
|||
|
||||
| FTK |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 11.6.2005 Репутация: нет Всего: нет |
Теперь понял.
Тогда еще вопрос: А где найти эту таблицу? Может есть электронная версия у тебя? Thanks for all, who have ever helped me/// |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Private x (something) = private
Public x public = public Protected x (Public or Protected) = protected |
|||
|
||||
| FTK |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 11.6.2005 Репутация: нет Всего: нет |
comcon1 Благодарю за помощь, теперь уж точно все ясно
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |