История изменений
Исправление
wota,
(текущая версия)
:
Стрелчки у тебя в сторону базового класса?
B наследуется от A, C от B
При касте ищем id(пусть даже линейно, а можно по хешу) - никак в 36 раз медленнее простого вызова не будет...
для каста в обратную сторону (как ты видимо понял) вообще нет динамики - это делает компилятор и тут хватит static_cast, а для каста вверх нельзя взять и добавить смещение, т.к. A* подразумевает под собой любой класс, который наследован от A, он может быть экземпляром C, а может и нет, а может у C несколько родительских A и/или B и т.д., все это надо проверять и узнавать в динамике
Исходная версия
wota,
:
Стрелчки у тебя в сторону базового класса?
B наследуется от A, C от B
При касте ищем id(пусть даже линейно, а можно по хешу) - никак в 36 раз медленнее простого вызова не будет...
для каста в обратную сторону (как ты видимо понял) вообще нет динамики - это делает компилятор и тут хватит static_cast, а для каста вверх нельзя взять и добавить смещение, т.к. A* подразумевает под собой любой класс, который наследован от A, он может экземпляром C, а может и нет, а может у C несколько родительских A и/или B и т.д., все это надо проверять и узнавать в динамике