Про дивертуализацию у компилятора тоже можно упомянуть. В некоторых случаях, даже когда мы пытаемся вызвать вирутальную функцию, скачка в таблицу виртуальных функций не будет в рантайме, вызовется как обычная
@vladimir_balun_programming2 жыл бұрын
Согласен, видео снято давно - про это тогда не знал
@holaamigogringoz2 жыл бұрын
Владимир, я ничего не понял, но ты крут!
@vladimir_balun_programming2 жыл бұрын
Спасибо!
@daps9516 Жыл бұрын
Понял 90%
@yanparasyuk87823 жыл бұрын
Где Вы получал свои знания ? Что за книги или сайты которые так подробно объясняют. Спасибо большое за видео, жду новые!
@vladimir_balun_programming3 жыл бұрын
Много читал, много смотрел видео, много практиковался. Потом, когда все это объединяется - получается очень интересная картинка в голове)
@Ланс-м1в3 жыл бұрын
Найдите pdf "Multiple inheritance for C++" Bjarne Straustrup. В google одно из первых выдает документ. При начальном знании языка, посидеть два вечера с переводчиком в свободное время.
@Ланс-м1в3 жыл бұрын
Или статью "Multiple inheritance considered useful". Не помню автора.
@vladimir_balun_programming3 жыл бұрын
@@Ланс-м1в спасибо, отличный материал, раньше не встречал
@Ланс-м1в3 жыл бұрын
Спасибо за видео. Повторить было полезно. Очень много времени в свое время потратил, чтобы найти информацию.
@nicholasspezza94497 ай бұрын
Почему скобки не по код-стайлу? В яндексе код-стайл, чтоб открывающая скобка была на одной строке с сигнатурой функции
@ShadowFiend-zg4fe2 жыл бұрын
Да ладно ? Прям в стандарте написано про очередность функций в vtable ? Стандарт вообще про vtable ничего не знает, это детали имплементации. То что clang gcc msvc это так имплементирует, не означает что нельзя по другому. Например можно хранить vtable прям в объекте, чтобы не делать дереференс на каждый виртул колл, теряя perfomance, более того в некоторых старых компляторах есть такая имплементация, и это соответсвтует стандарту. Стыдно учить тому, в чём сам не разбираешься ! Еще и про UB что то заикнулся. У стандарта нет ABI(Application Binary Interface), он для разных архитектур пишется.
@Sergey-mq3ol2 жыл бұрын
Душнила Что ты тут делаешь если все знаешь
@ShadowFiend-zg4fe2 жыл бұрын
@@Sergey-mq3ol В рекомендациях мусор этот вылез. Тебе в фронтенд, а не в плюсы если для тебя душно это. Если данный персонаж берётся за обучение других людей, то пусть хоть немного разберётся в теме.
@Sergey-mq3ol2 жыл бұрын
@@ShadowFiend-zg4fe Лан, согласен, что чел не топ, извиняюсь, ты прав что обоссал его
@princessmary555611 ай бұрын
Вы пишете: *можно хранить vtable прям в объекте, чтобы не делать дереференс на каждый виртул колл, теряя perfomance* Это чушь.
@Kalin_cheetah Жыл бұрын
А как устроена сама vfptr? Это указатель ведет к таблице. А таблица сама это что, объект какого-то системного класса?
@rafk53413 ай бұрын
Массив указателей на функции + ртти инфа про класс u64** vftable; Вызвать функцию из таблицы можно вот так: void(*fn)(void*) = reinterpret_cast(vftable[0]); fn(this); На эту тему есть пару лекций у Ильи Мещерина, там доходчиво все объясняется
@ОтважныйНУБ3 жыл бұрын
В идеале конечно бы с дебагингом объяснять, а то уже под конец запутался )
@vladimir_balun_programming3 жыл бұрын
Спасибо, в будущем подумаю над этим!
@nicholasspezza94497 ай бұрын
обж дамп сделай и наслаждайся
@ОлегСамохин-ъ9о3 жыл бұрын
"как яд на всех потомков", на всех непосредственных потомков? или на прямых тоже?)
@vladimir_balun_programming3 жыл бұрын
Что имеется в виду под прямыми и непосредственными?
@ОлегСамохин-ъ9о3 жыл бұрын
@@vladimir_balun_programming , имею ввиду ТОЛЬКО на первых, в которых не используется слово virtual, или все таки на тех кто отнаследуется от первых потомков(без слова virtual у метода) тоже?
@ОлегСамохин-ъ9о3 жыл бұрын
@@vladimir_balun_programming а терминологию "непосредственные" и "прямые" взял от начальников. Условно: Непосредственный - тот кому я отчитываюсь, показываю результат работы Прямой - начальник начальника, глава отдела
@ТоляПечкин-в7в2 жыл бұрын
на всех-всех
@nicholasspezza94497 ай бұрын
можно даже через потомков перепрыгивать, если в каком-то такой функции нет, а в следующем есть, то она будет виртуальной.
@Ultath10 ай бұрын
Объясняющему бы научиться слушать. Ни разу не дали человеку сформулировать вопрос. У Вас цель - научить или своими знаниями блеснуть?)) Как только ключевые слова слышите,, сразу перебиваете очередной попыткой рассказать, довольно сбивчивой, как будто боитесь, что вопрос окажется о том, чего Вы не знаете.