LINUX.ORG.RU

История изменений

Исправление rumgot, (текущая версия) :

тебе сказали, что суть динамического каста даже в плюсах - в ПРОВЕРКЕ корректности некого преобразования, форма которого не оговаривается, к указателю(ссылке) на некий желаемый тип. а не в том, что там «кручу-верчу - запутать хочу» с виртуальными базами.

виртуальные базы на потомка не кастуются в силу в силу того, что статически не понятно, где они в обьекте потомке лежат и как правильно переставить указатель. это такая особенность реализации виртуального наследования. в случае же невиртуального наследования, все всегда ясно и кастовать можно. и проверка корректности у меня есть. то есть это в полном смысле динамический каст реализованный ручками.

Зачем ты столько воды пишешь? Ты мне что, экзамен стаешь?

але, каким волшебным образом из моего коммента…

А за каким нужно спорить с комментом:

И это никакой не аналог того, как работает dynamic_cast.

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

что по твоему - динамический каст. дай определение уж наконец тогда

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

Исходная версия rumgot, :

тебе сказали, что суть динамического каста даже в плюсах - в ПРОВЕРКЕ корректности некого преобразования, форма которого не оговаривается, к указателю(ссылке) на некий желаемый тип. а не в том, что там «кручу-верчу - запутать хочу» с виртуальными базами.

виртуальные базы на потомка не кастуются в силу в силу того, что статически не понятно, где они в обьекте потомке лежат и как правильно переставить указатель. это такая особенность реализации виртуального наследования. в случае же невиртуального наследования, все всегда ясно и кастовать можно. и проверка корректности у меня есть. то есть это в полном смысле динамический каст реализованный ручками.

Зачем ты столько воды пишешь? Ты мне что, экзамен стаешь?

але, каким волшебным образом из моего коммента…

А за каким нужно спорить с комментом:

И это никакой не аналог того, как работает dynamic_cast.

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

что по твоему - динамический каст. дай определение уж наконец тогда

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