powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / virtual methods
25 сообщений из 356, страница 2 из 15
virtual methods
    #39648084
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devНеужели тебе был бесполезен мой пример с указателями на таблицы виртуальных методов?

За это спасибо (в случае если там все корректно)
...
Рейтинг: 0 / 0
virtual methods
    #39648085
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПочему нет ругани на override без ключевого слова virtual ?

Метод уже объявлен виртуальным в классе - предке, в дочернем классе объявление его virtual опциональное, можно написать, можно не писать. Эффект будет одинаковым.
В противовес к этому, объявление в дочернем классе метода как override убедится, что данный метод переопределяет родительский, а не объявляет новый виртуальный метод (как было бы с virtual)

автор - почему даже не будучи virtual o->m(); все равно дергает метод класса С

По той же причине. Объявление метода виртуальным ТОЛЬКО В ПРЕДКЕ достаточно, чтобы он считался виртуальным во всех иерархии классов -наследников от данного базового.

авторЯ все время думал что если метод невирутальный то A o дернет метод на классе А.


Для этого надо было убрать virtual в базовом классе, A.


авторПоясните плиз тогда зачем вообще оверрайдить метод и снова делать его виртуальным - если вызов и так будет корректным.


virtual объявляет, что данный метод виртуальный, безотносительно того, был ли он уже объявлен виртуальным в предке.
Если ты случайно ошибёшься с названием метода или его сигнатурой (например, забудешь const), то это будет другой метод уже,
и его объявление virtual в наследнике введёт новый метод, второй, в число виртуальных методов данного класса.
Убедиться, что ты ПЕРЕОПРЕДЕЛЯЕШЬ виртуальный метод базового класса с помощью модификатора virtual невозможно.
Можно только вручную проверить с базовым классом полное имя метода и сигнатуру , что они совпадают.
Для этого и введено ключевое слово, новый модификатор override. Оно позволяет именно убедится, что данный метод переопределяет виртуальный метод, объявленный в базовом классе, это значит, что у него совпадают имя и сигнатура с базовым классом и в базовом этот метод объявлен как virtual. Если это будет не так, компилятор выдаст ошибку.

Кстати, virtual переводится с английского на самом деле не как "виртуальный", а как "действительный" , "настоящий" , что очень сильно помогает понять физический смысл этого объявления.
...
Рейтинг: 0 / 0
virtual methods
    #39648087
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenНу ты отправил меня чего то там проверять вместо того чтобы корректно разобратьсяПотому и отправил...

semen.s.semenЭто я называю понтамиЛадно, пусть будут понты.
...
Рейтинг: 0 / 0
virtual methods
    #39648089
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
semen.s.semenЗа это спасибо (в случае если там все корректно)Ты даже не проповал? :(
...
Рейтинг: 0 / 0
virtual methods
    #39648096
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devsemen.s.semenЗа это спасибо (в случае если там все корректно)Ты даже не проповал? :(

Чуть позже

сорри
...
Рейтинг: 0 / 0
virtual methods
    #39648097
semen.s.semen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivавторПочему нет ругани на override без ключевого слова virtual ?

Метод уже объявлен виртуальным в классе - предке, в дочернем классе объявление его virtual опциональное, можно написать, можно не писать. Эффект будет одинаковым.
В противовес к этому, объявление в дочернем классе метода как override убедится, что данный метод переопределяет родительский, а не объявляет новый виртуальный метод (как было бы с virtual)

автор - почему даже не будучи virtual o->m(); все равно дергает метод класса С

По той же причине. Объявление метода виртуальным ТОЛЬКО В ПРЕДКЕ достаточно, чтобы он считался виртуальным во всех иерархии классов -наследников от данного базового.

авторЯ все время думал что если метод невирутальный то A o дернет метод на классе А.


Для этого надо было убрать virtual в базовом классе, A.


авторПоясните плиз тогда зачем вообще оверрайдить метод и снова делать его виртуальным - если вызов и так будет корректным.


virtual объявляет, что данный метод виртуальный, безотносительно того, был ли он уже объявлен виртуальным в предке.
Если ты случайно ошибёшься с названием метода или его сигнатурой (например, забудешь const), то это будет другой метод уже,
и его объявление virtual в наследнике введёт новый метод, второй, в число виртуальных методов данного класса.
Убедиться, что ты ПЕРЕОПРЕДЕЛЯЕШЬ виртуальный метод базового класса с помощью модификатора virtual невозможно.
Можно только вручную проверить с базовым классом полное имя метода и сигнатуру , что они совпадают.
Для этого и введено ключевое слово, новый модификатор override. Оно позволяет именно убедится, что данный метод переопределяет виртуальный метод, объявленный в базовом классе, это значит, что у него совпадают имя и сигнатура с базовым классом и в базовом этот метод объявлен как virtual. Если это будет не так, компилятор выдаст ошибку.

Кстати, virtual переводится с английского на самом деле не как "виртуальный", а как "действительный" , "настоящий" , что очень сильно помогает понять физический смысл этого объявления.

МастерЗив как всегда на высоте

Спасибо
...
Рейтинг: 0 / 0
virtual methods
    #39648169
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivКстати, virtual переводится с английского на самом деле не как "виртуальный", а как "действительный" , "настоящий" , что очень сильно помогает понять физический смысл этого объявления.
Сильно сомневаюсь , что такое значение у этого слова существует ))
...
Рейтинг: 0 / 0
virtual methods
    #39648174
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyMasterZivКстати, virtual переводится с английского на самом деле не как "виртуальный", а как "действительный" , "настоящий" , что очень сильно помогает понять физический смысл этого объявления.
Сильно сомневаюсь , что такое значение у этого слова существует ))
Гуглопереводчик говорит что существует
...
Рейтинг: 0 / 0
virtual methods
    #39648175
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyСильно сомневаюсь , что такое значение у этого слова существует ))Есть схожие.
...
Рейтинг: 0 / 0
virtual methods
    #39648237
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виртуальная Реальность в таком случае Реальная Реальность? А мы в какой реальности тогда живём?
В первом значении virtual есть виртуальный, ненормальный.
Ну... можно конечно сказать it virtually not exist - его практически не существует. Когда говорим о чём то очень редком.
...
Рейтинг: 0 / 0
virtual methods
    #39648268
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По первой ссылки в гугле:

virtual

being such in power, force, or effect, though not actually or expressly such
Перевод_yandexбыть таковым в силе, силе или действии, хотя на самом деле или явно не таковым


в общем, прилагательные русского языка "действительный", "настоящий" (Теперешний, происходящий в данное время.) - вполне подходят

IMHO
...
Рейтинг: 0 / 0
virtual methods
    #39648271
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCcВиртуальная Реальность в таком случае Реальная Реальность? А мы в какой реальности тогда живём?
...

На вопрос, в какой мы же реальности... без поллитра не ответить. Тут и выяснится, что после водки - одна реальная, после абсента - другая. А если уж вспомнить и о других веществах изменяющих виртуальную реальность.... то не зря же, скорость это быстрые, а хмурый это хмурый )))
...
Рейтинг: 0 / 0
virtual methods
    #39648277
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 - Не существует но не совсем а почти совсем, есть надежда что всё-таки где-то существует. ИМХО К программированию это значение никак нельзя отнести
...
Рейтинг: 0 / 0
virtual methods
    #39648281
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCc"почти то качество которое следует в последующем описании"

В русском языке для таких вещей есть слова "подделка", "фальшивка" или "(жалкое) подобие".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
virtual methods
    #39648283
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevOoCcВиртуальная Реальность в таком случае Реальная Реальность? А мы в какой реальности тогда живём?
...

На вопрос, в какой мы же реальности... без поллитра не ответить. Тут и выяснится, что после водки - одна реальная, после абсента - другая. А если уж вспомнить и о других веществах изменяющих виртуальную реальность.... то не зря же, скорость это быстрые, а хмурый это хмурый )))
Это филосовская тема на пятничный паб. Обсуждение по мере заливкой пивом.
...
Рейтинг: 0 / 0
virtual methods
    #39648289
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovOoCc"почти то качество которое следует в последующем описании"

В русском языке для таких вещей есть слова "подделка", "фальшивка" или "(жалкое) подобие".

Неточно перевёл. Я имел ввиду синтаксическую конструкцию предложения. Мой пример обьясняет что я имел ввиду. Оксфордский словарь очень точно описывает. Понятно и без преревода.
...
Рейтинг: 0 / 0
virtual methods
    #39648294
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCcОксфордский словарь очень точно описывает. Понятно и без преревода.

Да хоть переводи, хоть не переводи, получается "как настоящее, только не совсем".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
virtual methods
    #39648295
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
более близкий пример:
run out of space - нет места на диске
virtually run out of space - практически нет места на диске.
...
Рейтинг: 0 / 0
virtual methods
    #39648365
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devизучение программирования лучше начинать с ассемблера и ABI ?а я всегда так делаю. В ассемблерном коде видны механизмы реализации принципов языка. Тогда некоторые вещи не надо запоминать, так как ты всегда знаешь, как внутри это устроено, и тогда не ставят в тупик всякие хитровывернутые вопросы типа "а что если из виртуального деструктора вызвать виртуальный метод, из какого класса он вызовется?"

переводи, хоть не переводитеперь это тред о переводах
...
Рейтинг: 0 / 0
virtual methods
    #39648368
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbи тогда не ставят в тупик всякие хитровывернутые вопросы типа "а что если из виртуального деструктора вызвать виртуальный метод, из какого класса он вызовется?"Встречный вопрос: "Деструктор уже разрушил состояние объекта и вызвал метод объекта - ваши действия?" - не хочется задать?
Или это слишком по еврейски?
...
Рейтинг: 0 / 0
virtual methods
    #39648392
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovВстречный вопрос: "Деструктор уже разрушил состояние объекта и вызвал метод объекта - ваши действия?" - не хочется задать?Неее, это другого сорта вопрос
Basil A. SidorovИли это слишком по еврейски?Почему это считается по-еврейски?
...
Рейтинг: 0 / 0
virtual methods
    #39648395
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov"Деструктор уже разрушил состояние объекта и вызвал метод объекта - ваши действия?"Сейчас вспомнил, что мне как-то на собеседовании задали подобный вопрос. На что я начал вести разбор полётов и задавать уточняющие вопросы, чем слегка законфузил интервьюеров.
...
Рейтинг: 0 / 0
virtual methods
    #39648427
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovCEMbи тогда не ставят в тупик всякие хитровывернутые вопросы типа "а что если из виртуального деструктора вызвать виртуальный метод, из какого класса он вызовется?"Встречный вопрос: "Деструктор уже разрушил состояние объекта и вызвал метод объекта - ваши действия?" - не хочется задать?
Или это слишком по еврейски?Такая ситуация называется "сам дурак". :)
Конечно, иногда программер способен и такое ненарочно написать. Бывает... А что будет, если объект разрушен, память от него ушла на другие нужды, а прога вызывает delete по старому указателю, в надежде, что там живой объект? Тут либо всю программу внимательно прошерстить, либо все обычные указатели заменить на смарт.
...
Рейтинг: 0 / 0
virtual methods
    #39648518
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю переводить слово "virtual", как "мнимый". В этом случае, будем получать точный смысл таких словосочетания, как:
virtual reality (мнимая реальность)
virtual memory (мнимая память - свопинг данных между оперативной памятью и ЖД)
virtual office (мнимый офис - когда работники фиг знает где, но на связи и участвуют в производственном процессе)
VPN
и т.д.
...
Рейтинг: 0 / 0
virtual methods
    #39648578
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devПредлагаю переводить слово "virtual", как "мнимый". В этом случае, будем получать точный смысл таких словосочетания, как:
virtual reality (мнимая реальность)
virtual memory (мнимая память - свопинг данных между оперативной памятью и ЖД)
virtual office (мнимый офис - когда работники фиг знает где, но на связи и участвуют в производственном процессе)
VPN
и т.д.
Применительно к компьютерам Оксфордский словарь так и обьястяет .
...
Рейтинг: 0 / 0
25 сообщений из 356, страница 2 из 15
Форумы / C++ [игнор отключен] [закрыт для гостей] / virtual methods
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]