Re[18]: Книжка по UB
От: so5team https://stiffstream.com
Дата: 14.08.25 09:20
Оценка:
Здравствуйте, rg45, Вы писали:

S>>Почему не проверяется? Согласно стандарту при вызове f() в конструкторе c4 мы получаем вызов наиболее свежей к этому времени версии f -- c2::f.

S>>Значит все работает.

R>Ну так, если мы сделаем невиртуальный вызов: с4::f() мы получим тот же самый вызов c2::f.


Так ведь это здесь не при чем, вот в чем фокус.

Есть контекст -- конструктор c4.
В нем вызывается виртуальный метод f.
Стандарт описывает какая именно версия f будет вызвана в этом контексте.
Мы этот вызов и получаем. ЧТД.

А то, что в этом контексте вызов this->f() не будет отличаться от вызова c2::f(), ну так это стечение обстоятельств.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.