Re[11]: Книжка по UB
От: watchmaker  
Дата: 13.08.25 13:59
Оценка:
Здравствуйте, so5team, Вы писали:

ЛБ>>Вот до определенного уровня — до класса now under construction и работает.



S>И в конструкторах/деструкторах она не работает.


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

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

S>Виртуальная диспетчеризация либо работает, либо нет.


А постоянно мигающий жёлтым светофор на перекрёстке "работает" или нет?
В бытовом смысле — нет. А по ПДД — работает.


В статье используется отвратительно неоднозначная терминология.
Если бы было написано, что конкретно подразумевается под "не работает", то с этим ещё можно было бы как-то смириться.
Но сейчас там предлагается додумывать самому. А так как есть несколько хороших взаимноисключающих трактовок, то я вполне согласен с тем, что в статье написано некорректное утверждение — ведь оно в любом случае будет противоречить каким-то из них.
Отредактировано 13.08.2025 14:06 watchmaker . Предыдущая версия . Еще …
Отредактировано 13.08.2025 14:02 watchmaker . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.