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

S>>>То, что это к виртуальной диспетчеризации нормального человека не имеет отношения -- это уже другой вопрос. Но ведь работает же


M>>Это тоже виртуальная диспетчеризация


R>Ну, хорошо. Виртуальная диспетчеризация работает, но её результат неотличим от прямого невиртуального вызова. Нет возражений против такой формулировки?


R>Так а стоп. А почему тогда мы уверены, что она работает? В чём это проявляется и как это можно проверить?


Пришел к выводу, что причина спора в этом обсуждении в том, что часть участников (Лазар, Marty, watchmaker) придерживаются той точки зрения, что механизм виртуальной диспетчеризации работает потому, что он работает именно так, как описано в стандарте. Т.е. если в программе происходит именно то, что и следует по стандарту языка C++, то значит все работает и работает так, как надо.

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

Т.е. есть как бы "виртуальный вызов с точки зрения общепринятых ожиданий" и есть "виртуальный вызов с точки зрения языка C++".

Поэтому одна группа (в которой я) говорит о том, что в конструкторе виртуальности нет.
А другая группа, говорит о том, что она есть (опираясь на стандарт C++).

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