LINUX.ORG.RU

Хм, а ведь попробуй поспорь : )

ASterikS
()

Ну и чо? Тяжко слово запомнить чтоль? И какой ты нафиг после этого студент?

Видел бы, сколько всякой херни типа норм, гостов и прочих правил мудических приходится сдавать наизусть для присвоения должности ведущего инженера, а те ребятки, что "главные" и цельный Железные Лес могут в ровном поле построить с нуля - ваще ходячие энциклопедии.

Gharik
()
Ответ на: комментарий от generatorglukoff

Тут - ничего. Только сильно подозреваю, что правильный ответ в более общем виде признают неверным. Вот это действительно 3\.14.*

random_code ★★
()
Ответ на: комментарий от Gharik

=) При чём тут слово запомнить. Смысл в том что тут вообще-то должно быть определение виртуальной функции а не то как оно обозначается в С++.

CrazyPit ★★★
() автор топика

Виртуальная функция - это функция, объявленная с ключевым словом ПЫЩ!.

Сделать это истиной для какого-нибудь языка не составит большого труда :)

anonymous
()
Ответ на: комментарий от CrazyPit

> =) При чём тут слово запомнить. Смысл в том что тут вообще-то должно быть определение виртуальной функции а не то как оно обозначается в С++.

интересно услышать ваше определение термина "виртуальная функция" причём не прибегая к конкретной реализации того или оного языка a'la C++ & K.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Например:

Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения.

но уж точно не так как там.

CrazyPit ★★★
() автор топика
Ответ на: комментарий от klalafuda

виртуальная функция м.б. редекларированна в классах ниже. таким образом, она может изменяться программистом сколь угодно много раз и выполняется последняя описанная из таких функций

temy4
()
Ответ на: комментарий от temy4

> виртуальная функция м.б. редекларированна в классах ниже. таким образом, она может изменяться программистом сколь угодно много раз и выполняется последняя описанная из таких функций

тогда уж не редекларирована а переопределена ;) declare != define. декларацией вы задаёте интерфейс, определением - реализацию.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от temy4

> но суть понятна ;)

ну пока что не совсем. "пере определена в классах ниже" - это как? может быть всё-таки в унаследованных классах, т.е. скорее "выше"? если высоту измерять в позиции класса начиная от корня дерева иерархии классов.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от temy4

> хорош придираться к словам придираться ;) ясно же что имею в виду ниже уровень по древу классов

нуну, граждане, вы же всё-таки формальное определение даёте и это как раз тот случай, когда придираться к непонятным словам или неточностям более чем простительно.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

хорошо: CrazyPit дал более точное определение. К нему-то по определению вопросов нет, надеюсь?

спросил - я привел навскидку

temy4
()
Ответ на: комментарий от klalafuda

>интересно услышать ваше определение термина "виртуальная функция" причём не прибегая к конкретной реализации того или оного языка a'la C++ & K.

Ранее связывание - вызываемая функция определяется на этапе компиляции.

Позднее связывание - вызываемая функция определяется на этапе выполнения.

Виртуальная функция - это функция, для которой применяется позднее связывание.

generatorglukoff ★★
()

А в жабе - это абстрактный метод, т.е. ключевым словом abstract и без тела. Тока там ещё и сам класс нужно пометить абстрактым.

shahid ★★★★★
()
Ответ на: комментарий от shahid

> А в жабе - это ...

А в "жабе" ВСЕ "функции" виртуальные!

0:)

Die-Hard ★★★★★
()
Ответ на: комментарий от temy4

> виртуальная функция м.б. редекларированна в классах ниже. таким образом, она может изменяться программистом сколь угодно много раз и выполняется последняя описанная из таких функций

Гы... Формально неверно!

Например, в ЦеПП я переезжаю папин метод сотней дочек, внучек итд., но не обзываю его "virtual" ни разу (имею право!); инстанцирую папу как пра-пра-... внучку и зову этот метод. Кто позовется?

Другой пример: я переезжаю папин метод сотней дочек, внучек итд., и обзываю его "virtual", как положенно; инстанцирую папу как некую серединную (пра*)внучку и зову этот метод. Позовется метод той (пра*)внучки, которую я ему подпихнул, но отнюдь не той, что я последнюю от него поимел!

Die-Hard ★★★★★
()

> Это реально правильный ответ для вопроса на тест

Писец... А в джаве значит все методы статические?!

no-dashi ★★★★★
()
Ответ на: комментарий от generatorglukoff

>Виртуальная функция - это функция, для которой применяется позднее связывание.

Каждая селедка - рыба, но не каждая рыба - селедка. Позднее связывание используется не только в виртуальных функциях.

redgremlin ★★★★★
()
Ответ на: комментарий от generatorglukoff

Ну, например, достал либу из архива, вызвал оттуда функцию, она отработала, удалил вытащенную либу при выходе. Хз зачем это может понадобится, просто лень пореальнее пример придумывать.

redgremlin ★★★★★
()
Ответ на: комментарий от generatorglukoff

> Можно пример?

функция из любой динамической библиотеки?

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от generatorglukoff

> Можно пример?

Любой вызов функции через указатель. Указатель я могу сформировать на этапе выполнения.

Вообще, словосочетание "виртуальная функция" в контексте ООП не имеет смысла, даже в рамках ЦеПП. Очевидно, автор вопроса имел в виду "виртуальный метод", но сам до недавнего времени программировал на Фортране (или Паскале) и, изучив Це, был поражен, что все вызываемое -- функции.

Или, может, автор вопроса -- лиспер...

:)

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.