Hi!
Делаю некий класс: class foo { public: void virtual set(S16 value) { v = value; } S16 get(void) { return v; } protected: S16 v; }; Потом делаю от него наследника: class bar : foo { public: void virtual set(S16 value) { v = value/2; } };
Все работает. HО! Если в классе foo объявить функцию get как virtual то код вешается, причем похоже на вызове конструктора класса foo (точно не знаю как выяснить, я просто убрал все экземпляры класса bar). Код вешается и в том случае, если в классе bar перекрыть злосчастную функцию get. Добавление еще одной виртуальной функции типа void в базовый класс не переопределенной в наследнике - все в порядке. Конструкторы тривиальны и поэтому тут не показаны. Что я делаю не так? Можно, конечно, оставить как есть, но есть мысль сделать foo неким универсальным базовым классом, да и вообще! Модель - small, стека возвратов вроде как достаточно (50, а вложенность небольшая).
Денис.