![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чем отличаются виртуальные и простые методы?
NikNet © (2005-09-06 17:44:00)в DELPHI?
panov (2005-09-06 18:41:00) [1]ya.ru
"Чем отличаются виртуальные и простые методы?"
Begin (2005-09-06 18:32:00) [2]Виртуальный метод:
Может быть переопределен или перекрыт в потомке
Простой(он же обыкновенный, он же статический :) метод:
НЕ может быть переопределен/перекрыт в потомке
Если планируешь/предпологаешь, что разные потомки базового класса будут по разному оперировать некими данными, то оперирующие этими данными методы базового класса объявляешь динамическими,и переопределяешь в потомке; иначе - можешь оставить статическими.
Reindeer Moss Eater (2005-09-06 18:05:00) [3]Я же уже сказал.
DesWind (2005-09-06 18:05:00) [4]:)
begin...end (2005-09-06 18:05:00) [5]> NikNet © (06.09.05 17:44)
Если речь идёт о виртуальных и статических методах, то последние подобны обычным подпрограммам -- компилятор определяет адрес вызываемого метода ещё на этапе компиляции, а при вызове первых конкретный адрес ищется в run-time в таблице виртуальных методов. См. в справке: static methods, virtual methods.
Rule (2005-09-06 18:04:00) [6]Reindeer Moss Eater © (06.09.05 18:03) [6]
а есть такие ?
Reindeer Moss Eater (2005-09-06 18:03:00) [7]А я понял, что имелись в виду простые методы.
DesWind (2005-09-06 18:02:00) [8]Я так понял имелись ввиду статические методы.
Reindeer Moss Eater (2005-09-06 18:01:00) [9]>но их реализация зависит от конкретного объекта на который ссылается переменная, а не от ее типа.
Скорее зависит диспетчеризация, а не реализация.
Reindeer Moss Eater (2005-09-06 18:00:00) [10]Абстрактные есть.
Виртуальные есть.
Простых нет.
Они вторые в вопросе.
DesWind (2005-09-06 17:59:00) [11]Это абстрактных нет, а виртуальные есть(так же как и динамические) но их реализация зависит от конкретного объекта на который ссылается переменная, а не от ее типа.
Reindeer Moss Eater (2005-09-06 17:49:00) [12]Тем, что первые есть, а вторых нет.