LINUX.ORG.RU

QT C++ объявление объектов

 ,


1

4

Либо я совсем дурак,либо у QT какйто свой C++

QObject *a[3];
if(a[0]){....код...}

Если объект не объявлен то [код] не выполняется,логично.

QObject *a[3];
a[0]=new QObject();
if(a[0]){....код...}

Тут [код] выполняется.

Если объявить QObject *a[3]; в заголовочном файле То if(a[0]) всегда будет true,т.е. почемуто считается что объект объявлен?

НО Если объявить в заголовочном файле QObject *a; И проверить if(a){....код...} Будет ВЕРНО(т.е. отвечать false если не объявлен) работать,ПОЧЕМУ?

Конечно есть вариант что я забыл/недоучил С++

Также добавлю-у меня пол программы щас отвалилось из-за этого,причем qt я не обновлял,обновил только gcc,и старый бинарник работает,а новый компилируется и падает. Что за магия такая?

Спасибо за помощь.



Последнее исправление: tester9999 (всего исправлений: 1)
Ответ на: комментарий от Stvad

Все в этом треде первокурсники не более(кроме меня естественно).

Вы понятия не имеете о работе С++ и в том что эта проблема действительно QT-спецефичная.

Для <анонимуса с кодом> QT C++ объявление объектов (комментарий)

Намекну тебе:

Скомпиляй как у меня написано выводя значения a[],и не выводя,обратись к a[] в коде один/два/больше раз-тебя удивит резулььтат(дада он будет нерандомный)

И причина тут совсем не в мусоре.Думайте дальше.

tester9999
() автор топика
Ответ на: комментарий от tester9999

Скомпиляй как у меня написано выводя значения a[],и не выводя,обратись к a[] в коде один/два/больше раз-тебя удивит резулььтат(дада он будет нерандомный)

О боги! Да худей уже.

anonymous
()
Ответ на: комментарий от tester9999

Все в этом треде первокурсники не более

почему не школьники?

(кроме меня естественно).

али школьник таки ты?

Вы понятия не имеете о работе С++

конечно не имеем

и в том что эта проблема действительно QT-спецефичная.
QT

ну ты понял.

Stvad
()
Ответ на: комментарий от tester9999

рандомность значения неинициализированного указателя проявляется при компиляции, если уже скомпилированный бинарник запускать несколько раз, или делать несколько проверок этого значения в ходе работы программы, то это значение будет одинаковое

kravich ★★★★
()
Ответ на: комментарий от tester9999

Все в этом треде первокурсники не более(кроме меня естественно).

личинка д'артаньяна глаголет! всем ниц

shty ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.