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

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

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

Денис.



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

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



IAR 3.10A чего-то туплю
Привет Денис!

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

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

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

Aleksandr

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

Re: IAR 3.10A чего-то туплю
сообщил/сообщила в новостях следующее:
Quoted text here. Click to load it
глюки
Quoted text here. Click to load it
Черт знает, поставил 3.20С ситуация точно такая же, так что однако это не
баг, а вот что - непонятно.

Денис.



Re: IAR 3.10A чего-то туплю
Здравствуйте.

Quoted text here. Click to load it
ДО> глюки
Quoted text here. Click to load it
ДО> Черт знает, поставил 3.20С ситуация точно такая же, так что однако это не
ДО> баг, а вот что - непонятно.

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

---
Алексей Краснов





--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

IAR 3.10A чего-то туплю
       Доброго здоровья, Денис!

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.

Re: IAR 3.10A чего-то туплю
сообщил/сообщила в новостях следующее:
Quoted text here. Click to load it
то код
Quoted text here. Click to load it
знаю как
Quoted text here. Click to load it
Пробовал я... С дефолтных 0х20 до 0х80. Эффекта - ноль. Да и new я не
использую.

Денис.



Re: IAR 3.10A чего-то туплю
Quoted text here. Click to load it
код
Quoted text here. Click to load it
как
Хех, разобрался. Сам такой. Сделав отладочную выдачу и потратив пять
прошивок нашел работу с неиницализированным указателем. Блин! Hо как он
работал по этому же указателю, если не объявлять get виртуальной я не пойму.

Денис.



Site Timeline