|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_devНеужели тебе был бесполезен мой пример с указателями на таблицы виртуальных методов? За это спасибо (в случае если там все корректно) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 13:13 |
|
virtual methods
|
|||
---|---|---|---|
#18+
авторПочему нет ругани на override без ключевого слова virtual ? Метод уже объявлен виртуальным в классе - предке, в дочернем классе объявление его virtual опциональное, можно написать, можно не писать. Эффект будет одинаковым. В противовес к этому, объявление в дочернем классе метода как override убедится, что данный метод переопределяет родительский, а не объявляет новый виртуальный метод (как было бы с virtual) автор - почему даже не будучи virtual o->m(); все равно дергает метод класса С По той же причине. Объявление метода виртуальным ТОЛЬКО В ПРЕДКЕ достаточно, чтобы он считался виртуальным во всех иерархии классов -наследников от данного базового. авторЯ все время думал что если метод невирутальный то A o дернет метод на классе А. Для этого надо было убрать virtual в базовом классе, A. авторПоясните плиз тогда зачем вообще оверрайдить метод и снова делать его виртуальным - если вызов и так будет корректным. virtual объявляет, что данный метод виртуальный, безотносительно того, был ли он уже объявлен виртуальным в предке. Если ты случайно ошибёшься с названием метода или его сигнатурой (например, забудешь const), то это будет другой метод уже, и его объявление virtual в наследнике введёт новый метод, второй, в число виртуальных методов данного класса. Убедиться, что ты ПЕРЕОПРЕДЕЛЯЕШЬ виртуальный метод базового класса с помощью модификатора virtual невозможно. Можно только вручную проверить с базовым классом полное имя метода и сигнатуру , что они совпадают. Для этого и введено ключевое слово, новый модификатор override. Оно позволяет именно убедится, что данный метод переопределяет виртуальный метод, объявленный в базовом классе, это значит, что у него совпадают имя и сигнатура с базовым классом и в базовом этот метод объявлен как virtual. Если это будет не так, компилятор выдаст ошибку. Кстати, virtual переводится с английского на самом деле не как "виртуальный", а как "действительный" , "настоящий" , что очень сильно помогает понять физический смысл этого объявления. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 13:16 |
|
virtual methods
|
|||
---|---|---|---|
#18+
semen.s.semenНу ты отправил меня чего то там проверять вместо того чтобы корректно разобратьсяПотому и отправил... semen.s.semenЭто я называю понтамиЛадно, пусть будут понты. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 13:18 |
|
virtual methods
|
|||
---|---|---|---|
#18+
semen.s.semenЗа это спасибо (в случае если там все корректно)Ты даже не проповал? :( ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 13:18 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_devsemen.s.semenЗа это спасибо (в случае если там все корректно)Ты даже не проповал? :( Чуть позже сорри ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 13:24 |
|
virtual methods
|
|||
---|---|---|---|
#18+
MasterZivавторПочему нет ругани на override без ключевого слова virtual ? Метод уже объявлен виртуальным в классе - предке, в дочернем классе объявление его virtual опциональное, можно написать, можно не писать. Эффект будет одинаковым. В противовес к этому, объявление в дочернем классе метода как override убедится, что данный метод переопределяет родительский, а не объявляет новый виртуальный метод (как было бы с virtual) автор - почему даже не будучи virtual o->m(); все равно дергает метод класса С По той же причине. Объявление метода виртуальным ТОЛЬКО В ПРЕДКЕ достаточно, чтобы он считался виртуальным во всех иерархии классов -наследников от данного базового. авторЯ все время думал что если метод невирутальный то A o дернет метод на классе А. Для этого надо было убрать virtual в базовом классе, A. авторПоясните плиз тогда зачем вообще оверрайдить метод и снова делать его виртуальным - если вызов и так будет корректным. virtual объявляет, что данный метод виртуальный, безотносительно того, был ли он уже объявлен виртуальным в предке. Если ты случайно ошибёшься с названием метода или его сигнатурой (например, забудешь const), то это будет другой метод уже, и его объявление virtual в наследнике введёт новый метод, второй, в число виртуальных методов данного класса. Убедиться, что ты ПЕРЕОПРЕДЕЛЯЕШЬ виртуальный метод базового класса с помощью модификатора virtual невозможно. Можно только вручную проверить с базовым классом полное имя метода и сигнатуру , что они совпадают. Для этого и введено ключевое слово, новый модификатор override. Оно позволяет именно убедится, что данный метод переопределяет виртуальный метод, объявленный в базовом классе, это значит, что у него совпадают имя и сигнатура с базовым классом и в базовом этот метод объявлен как virtual. Если это будет не так, компилятор выдаст ошибку. Кстати, virtual переводится с английского на самом деле не как "виртуальный", а как "действительный" , "настоящий" , что очень сильно помогает понять физический смысл этого объявления. МастерЗив как всегда на высоте Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 13:24 |
|
virtual methods
|
|||
---|---|---|---|
#18+
MasterZivКстати, virtual переводится с английского на самом деле не как "виртуальный", а как "действительный" , "настоящий" , что очень сильно помогает понять физический смысл этого объявления. Сильно сомневаюсь , что такое значение у этого слова существует )) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 15:35 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyMasterZivКстати, virtual переводится с английского на самом деле не как "виртуальный", а как "действительный" , "настоящий" , что очень сильно помогает понять физический смысл этого объявления. Сильно сомневаюсь , что такое значение у этого слова существует )) Гуглопереводчик говорит что существует ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 15:39 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyСильно сомневаюсь , что такое значение у этого слова существует ))Есть схожие. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 15:42 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Виртуальная Реальность в таком случае Реальная Реальность? А мы в какой реальности тогда живём? В первом значении virtual есть виртуальный, ненормальный. Ну... можно конечно сказать it virtually not exist - его практически не существует. Когда говорим о чём то очень редком. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 17:02 |
|
virtual methods
|
|||
---|---|---|---|
#18+
По первой ссылки в гугле: virtual being such in power, force, or effect, though not actually or expressly such Перевод_yandexбыть таковым в силе, силе или действии, хотя на самом деле или явно не таковым в общем, прилагательные русского языка "действительный", "настоящий" (Теперешний, происходящий в данное время.) - вполне подходят IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 18:30 |
|
virtual methods
|
|||
---|---|---|---|
#18+
OoCcВиртуальная Реальность в таком случае Реальная Реальность? А мы в какой реальности тогда живём? ... На вопрос, в какой мы же реальности... без поллитра не ответить. Тут и выяснится, что после водки - одна реальная, после абсента - другая. А если уж вспомнить и о других веществах изменяющих виртуальную реальность.... то не зря же, скорость это быстрые, а хмурый это хмурый ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 18:34 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevПо первой ссылки в гугле: virtual being such in power, force, or effect, though not actually or expressly such Перевод_yandexбыть таковым в силе, силе или действии, хотя на самом деле или явно не таковым в общем, прилагательные русского языка "действительный", "настоящий" (Теперешний, происходящий в данное время.) - вполне подходят IMHO Это то что я сказал в своем последнем предложении. oxford dictionaryAlmost or nearly as described, but not completely or according to strict definition. "почти то качество которое следует в последующем описании" - авторit virtually not exist - Не существует но не совсем а почти совсем, есть надежда что всё-таки где-то существует. ИМХО К программированию это значение никак нельзя отнести ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 18:51 |
|
virtual methods
|
|||
---|---|---|---|
#18+
OoCc"почти то качество которое следует в последующем описании" В русском языке для таких вещей есть слова "подделка", "фальшивка" или "(жалкое) подобие". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 18:56 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevOoCcВиртуальная Реальность в таком случае Реальная Реальность? А мы в какой реальности тогда живём? ... На вопрос, в какой мы же реальности... без поллитра не ответить. Тут и выяснится, что после водки - одна реальная, после абсента - другая. А если уж вспомнить и о других веществах изменяющих виртуальную реальность.... то не зря же, скорость это быстрые, а хмурый это хмурый ))) Это филосовская тема на пятничный паб. Обсуждение по мере заливкой пивом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 18:59 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovOoCc"почти то качество которое следует в последующем описании" В русском языке для таких вещей есть слова "подделка", "фальшивка" или "(жалкое) подобие". Неточно перевёл. Я имел ввиду синтаксическую конструкцию предложения. Мой пример обьясняет что я имел ввиду. Оксфордский словарь очень точно описывает. Понятно и без преревода. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 19:05 |
|
virtual methods
|
|||
---|---|---|---|
#18+
OoCcОксфордский словарь очень точно описывает. Понятно и без преревода. Да хоть переводи, хоть не переводи, получается "как настоящее, только не совсем". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 19:15 |
|
virtual methods
|
|||
---|---|---|---|
#18+
более близкий пример: run out of space - нет места на диске virtually run out of space - практически нет места на диске. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2018, 19:16 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_devизучение программирования лучше начинать с ассемблера и ABI ?а я всегда так делаю. В ассемблерном коде видны механизмы реализации принципов языка. Тогда некоторые вещи не надо запоминать, так как ты всегда знаешь, как внутри это устроено, и тогда не ставят в тупик всякие хитровывернутые вопросы типа "а что если из виртуального деструктора вызвать виртуальный метод, из какого класса он вызовется?" переводи, хоть не переводитеперь это тред о переводах ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 05:21 |
|
virtual methods
|
|||
---|---|---|---|
#18+
CEMbи тогда не ставят в тупик всякие хитровывернутые вопросы типа "а что если из виртуального деструктора вызвать виртуальный метод, из какого класса он вызовется?"Встречный вопрос: "Деструктор уже разрушил состояние объекта и вызвал метод объекта - ваши действия?" - не хочется задать? Или это слишком по еврейски? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 06:15 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Basil A. SidorovВстречный вопрос: "Деструктор уже разрушил состояние объекта и вызвал метод объекта - ваши действия?" - не хочется задать?Неее, это другого сорта вопрос Basil A. SidorovИли это слишком по еврейски?Почему это считается по-еврейски? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 08:02 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Basil A. Sidorov"Деструктор уже разрушил состояние объекта и вызвал метод объекта - ваши действия?"Сейчас вспомнил, что мне как-то на собеседовании задали подобный вопрос. На что я начал вести разбор полётов и задавать уточняющие вопросы, чем слегка законфузил интервьюеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 08:12 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Basil A. SidorovCEMbи тогда не ставят в тупик всякие хитровывернутые вопросы типа "а что если из виртуального деструктора вызвать виртуальный метод, из какого класса он вызовется?"Встречный вопрос: "Деструктор уже разрушил состояние объекта и вызвал метод объекта - ваши действия?" - не хочется задать? Или это слишком по еврейски?Такая ситуация называется "сам дурак". :) Конечно, иногда программер способен и такое ненарочно написать. Бывает... А что будет, если объект разрушен, память от него ушла на другие нужды, а прога вызывает delete по старому указателю, в надежде, что там живой объект? Тут либо всю программу внимательно прошерстить, либо все обычные указатели заменить на смарт. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 09:25 |
|
virtual methods
|
|||
---|---|---|---|
#18+
Предлагаю переводить слово "virtual", как "мнимый". В этом случае, будем получать точный смысл таких словосочетания, как: virtual reality (мнимая реальность) virtual memory (мнимая память - свопинг данных между оперативной памятью и ЖД) virtual office (мнимый офис - когда работники фиг знает где, но на связи и участвуют в производственном процессе) VPN и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 11:10 |
|
virtual methods
|
|||
---|---|---|---|
#18+
rdb_devПредлагаю переводить слово "virtual", как "мнимый". В этом случае, будем получать точный смысл таких словосочетания, как: virtual reality (мнимая реальность) virtual memory (мнимая память - свопинг данных между оперативной памятью и ЖД) virtual office (мнимый офис - когда работники фиг знает где, но на связи и участвуют в производственном процессе) VPN и т.д. Применительно к компьютерам Оксфордский словарь так и обьястяет . ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 12:05 |
|
|
start [/forum/topic.php?fid=57&msg=39648365&tid=2017692]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 157ms |
0 / 0 |