IAR 3.10A чего-то туплю

Dec 10, 2004 7 Replies

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, а вложенность небольшая).



Денис.



"Денис Опанасенко" snipped-for-privacy@unknown.nowhere сообщил/сообщила в новостях следующее: news:cpc8fe$fq0$ snipped-for-privacy@freemail.irk.ru...

Прошу прощения, на самом деле версия 3.10С кракнутая, чего-то совсем туплю...

Привет Денис!

10 Дек 04 21:33, Денис Опанасенко -> All:

ДО> Прошу прощения, на самом деле версия 3.10С кракнутая, чего-то совсем ДО> туплю...

Похоже глюкавый какой-то этот 3.10C. Я уже тут писал, что очень интересные глюки наблюдаются в нем... Hужно что-то постабильнне искать...

Aleksandr

... Смотpеть в зеpкала - лyчший способ сойти с yма

Доброго здоровья, Денис!

10 Dec 04 21:24, Денис Опанасенко написал для All:

ДО> Делаю некий класс: ДО> 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, а вложенность небольшая).

попробуй увеличить размер кучи.

WBR, Сергей. ICQ: 101347299

... Положив в стиральную машину 6 носков, вынимаешь только 5.

"Aleksandr Popruga" <Aleksandr snipped-for-privacy@p3.f.n4634.z2.fidonet.org>

сообщил/сообщила в новостях следующее: news:MSGID_2=3A4634=2F4.3 snipped-for-privacy@fidonet.org...

глюки

Черт знает, поставил 3.20С ситуация точно такая же, так что однако это не баг, а вот что - непонятно.

Денис.

"Sergei Tuchinski" <Sergei snipped-for-privacy@f38.n.z2.fidonet.org>

сообщил/сообщила в новостях следующее: news:MSGID_2=3A5025=2F38 snipped-for-privacy@fidonet.org...

то код

знаю как

Пробовал я... С дефолтных 0х20 до 0х80. Эффекта - ноль. Да и new я не использую.

Денис.

"Денис Опанасенко" snipped-for-privacy@unknown.nowhere сообщил/сообщила в новостях следующее: news:cpc8fe$fq0$ snipped-for-privacy@freemail.irk.ru...

код

как Хех, разобрался. Сам такой. Сделав отладочную выдачу и потратив пять прошивок нашел работу с неиницализированным указателем. Блин! Hо как он работал по этому же указателю, если не объявлять get виртуальной я не пойму.

Денис.

Здравствуйте.

ДО> глюки

ДО> Черт знает, поставил 3.20С ситуация точно такая же, так что однако это не ДО> баг, а вот что - непонятно.

Откатись на 2.28А. В ней неприятности конечно же тоже случаются, но не так часто.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required