![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
Bokul |
![]()
Сообщение
#1
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Серия "Вопросы структурного чайника, который пытается стать объектным самоваром" продолжается.
Для чего или, лучше сказать, в каких случаях надо использовать виртуальные методы? Они дают возможность предкам использовать методы наследников, ну и что? В каких случаях это может пригодится? Мне кажется, что это достаточно трудно спроектировать подобные ситуации, в которых это понадобится. Хотя я очень часто вижу использование этих методов. -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вот классический пример, накалякал сейчас на скорую руку. Разберись с ним сначала - Ок?
Думаю, заметишь преимущество. uses Подсказка: наиди в объекте Stone процедуру MoveTo, которую мы используем с ним.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата procedure MoveTo(x,y:integer); virtual; Кстати, H.Sutter рекомендует делать открытые (Public, они же интерфейсные) методы НЕвиртуальными, а виртуальными оставлять только Private-методы... ![]() |
Bokul |
![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Цитата Кстати, H.Sutter рекомендует делать открытые (Public, они же интерфейсные) методы НЕвиртуальными, а виртуальными оставлять только Private-методы... То есть виртуальные методы имеют пользу только в пределах одного модуля, программы? Значит логика их применения примерно такая: если методы родителя, которые используются в его других методах, будут переопределены в его потомках, то их надо сделать виртуальными (завертуалить ![]() -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
|
Bokul |
![]()
Сообщение
#6
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
volvo, то что надо!!!
![]() -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
![]() |
Текстовая версия | 26.07.2025 21:32 |