Глобальные Static переменные |
Здравствуйте, гость ( Вход | Регистрация )
Глобальные Static переменные |
defnull |
8.5.2009, 18:52
Сообщение
#1
|
Студент Группа: Участник Сообщений: 49 Регистрация: 1.5.2008 Пользователь №: 165 Спасибо сказали: 0 раз(а) Репутация: 1 |
Доброго времени суток.. натолкнулся на проблему которая просто взорвала мне мозг..
Вообщем есть глобальная переменная определённая в файле Enums.h :
Есть одна функция класса CommandLoadEditRequest которая заканчивает свою работу так:
Тоесть попросту меняет значение этой глобальной переменной и высылает сигнал. Сигнал сразу же ловится (cсоединён connect(commandLoad, SIGNAL(doneSuccesfully()), this, SLOT(slotCreateRequest())); )
И выводит мне не -1 а 3!! Сперва я подумал что просто что-то напутал и набросал простенький пример на чистом с++ дабы проверить как это всё работает по аналогии:
Но он работает корректно в отличии от предыдущего =((( Всё было бы смешно если бы не было так грустно, ибо убил уже дофига времени на всё это =((( з.ы. Весь проект конечно скинуть можно но имхо не имеет смысла.. объёмный .. Сообщение отредактировал defnull - 8.5.2009, 18:53 |
|
|
DmP |
8.5.2009, 19:14
Сообщение
#2
|
Студент Группа: Участник Сообщений: 61 Регистрация: 11.3.2008 Пользователь №: 116 Спасибо сказали: 15 раз(а) Репутация: 2 |
|
|
|
defnull |
8.5.2009, 19:45
Сообщение
#3
|
Студент Группа: Участник Сообщений: 49 Регистрация: 1.5.2008 Пользователь №: 165 Спасибо сказали: 0 раз(а) Репутация: 1 |
Мдя =( про exteren-то я и позабыл...
Меня вот только оч смущает почему же на чистом с++ пример работал. Хотя там попытался нечто похожее сделать... Пойду гляну что Страуструп на эту тему пишет.. Добавил в сpp файлы где использую Transac::cre extern int Transac::cre; Да только воз и ныне там.. что-то я не догоняю=( Сообщение отредактировал defnull - 8.5.2009, 19:59 |
|
|
Kagami |
8.5.2009, 20:08
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
|
|
|
DmP |
8.5.2009, 20:12
Сообщение
#5
|
Студент Группа: Участник Сообщений: 61 Регистрация: 11.3.2008 Пользователь №: 116 Спасибо сказали: 15 раз(а) Репутация: 2 |
Добавил в сpp файлы где использую Transac::cre extern int Transac::cre; extern пишется в заголовочном файле enum.h:
В одном файле из *.cpp, например, в enum.cpp:
Должно работать. Сообщение отредактировал DmP - 8.5.2009, 20:14 |
|
|
defnull |
8.5.2009, 20:18
Сообщение
#6
|
Студент Группа: Участник Сообщений: 49 Регистрация: 1.5.2008 Пользователь №: 165 Спасибо сказали: 0 раз(а) Репутация: 1 |
Kagami,
Посмотрел ваш пример, у меня мой пример на чистом С++ тоже работает. Вероятно вся проблема в моём случае в компоновке так как высылающий сигнал класс и принимающий в разных cpp файлах... сейчас попробую пошаманить ещё.. DmP Вы оказались правы=) Фуф ну наконец-то, а то замучался совсем... с другой стороны выявил места в которых мне ещё надо поразбираться.. Всем спасибо за помощь!) Сообщение отредактировал defnull - 8.5.2009, 20:24 |
|
|
Текстовая версия | Сейчас: 23.11.2024, 2:30 |