Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чем отличаются виртуальные и простые методы?


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]

Тем, что первые есть, а вторых нет.


Наверх

Титульная страница Поиск, карта сайта Написать письмо