LINUX.ORG.RU

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

Исправление 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 и т.д., все это надо проверять и узнавать в динамике