Название: static QEventLoop странное поведение Отправлено: SABROG от Июль 29, 2009, 13:37 Есть такой код
Код
Если я использую статический указатель loop как член Base класса, то метод foo() никогда не возвращает управления и не реагирует на истекший таймер. Если я использую глобальный статический указатель loop2, то всё работает нормально. Для эксперимента можете менять дефайн USE_LOOP2=0/1. В чем косяк? Название: Re: static QEventLoop странное поведение Отправлено: denka от Июль 29, 2009, 13:52 Может стоит поменять строчку
Код: return new QEventLoop(qApp); на Код: return loop = new QEventLoop(qApp); :) Название: Re: static QEventLoop странное поведение Отправлено: BRE от Июль 29, 2009, 13:53 Есть такой код Внимательно посмотри, что будет возвращать eventLoop() после каждого вызова.Код
Название: Re: static QEventLoop странное поведение Отправлено: BigZ от Июль 29, 2009, 13:54 А() {} --> A() : Base () {}, Base() : loop(0) { ... }
Название: Re: static QEventLoop странное поведение Отправлено: BRE от Июль 29, 2009, 13:55 Может стоит поменять строчку Код: return new QEventLoop(qApp); на Код: return loop = new QEventLoop(qApp); :) Код
Название: Re: static QEventLoop странное поведение Отправлено: denka от Июль 29, 2009, 13:57 Может стоит поменять строчку Код: return new QEventLoop(qApp); на Код: return loop = new QEventLoop(qApp); :) Код
Код
Кто напишет меньше букав? :) Название: Re: static QEventLoop странное поведение Отправлено: SABROG от Июль 29, 2009, 14:02 den'ka, спасибо. Что-то я совсем не внимательный стал в последнее время.
Название: Re: static QEventLoop странное поведение Отправлено: SABROG от Июль 29, 2009, 14:27 Base() : loop(0) { ... } Так будет утечка памяти, к тому же я явно нулем уже все проинициализировал: Код
A() : Base () {} В этом тоже смысла нет, конструктор Base() и без того вызывается. Название: Re: static QEventLoop странное поведение Отправлено: BigZ от Июль 29, 2009, 14:42 Base() : loop(0) { ... } Так будет утечка памяти, к тому же я явно нулем уже все проинициализировал: Код
A() : Base () {} В этом тоже смысла нет, конструктор Base() и без того вызывается. инициализируется шагом ниже. |