Russian Qt Forum
Ноябрь 24, 2024, 20:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Есть ли в Qt аналог глобальных объектов как в PHP?  (Прочитано 21072 раз)
fuCtor
Гость
« Ответ #30 : Июнь 17, 2012, 14:42 »

избавься от singleton.h – после этого всё будет работать. ну и в данном случае ttt лучше создавать на стеке (т.е. не делать указателем).

и в test2.h:5 убери ; – после инклудов точку с запятой не ставят.
Да все заработало спасибо, вот она какая глобальная переменная на самом деле, если сравнить с PHP
GLOBAL $VAR = 123;
А стек это http://doc.qt.nokia.com/4.7-snapshot/qstack.html или что то еще?

Глобальная переменная все же это:

extern int var;

А singleton это singleton, не стоит путать теплое с мягким.

Список литературы:
http://alenacpp.blogspot.com/2006/09/blog-post_19.html

или уж отсюда для начала можно:
http://www.programmersclub.ru/main/
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #31 : Июнь 17, 2012, 14:48 »

Глобальная переменная все же это:

extern int var;

А singleton это singleton, не стоит путать теплое с мягким.
Из хорошей старой книжки
Цитировать
..на котором красовалась надпись ВАСТОК-2. Я подошел и исправил обе ошибки:  ВОСТОГ-2
Улыбающийся
Записан
voron1980
Гость
« Ответ #32 : Июнь 17, 2012, 17:25 »

создать переменную на стеке значит объявить её не указателем. пойди поучи C++.
Если я пойду читать про С++ будет 2 вещи
1) Я не смогу понять как реализовать прочитанное, к сожалению жизнь такая, что постоянная беготня лишает чувства которое возникает когда что то понял, если это тупо не работает значит не понял, если работает значит понял.
2) Если не смогу быстро реализовать несколько мелких проектов, боюсь времени и желания у меня уже может не быть.

В общем каждый выкручивается как может.
Записан
voron1980
Гость
« Ответ #33 : Июнь 17, 2012, 18:05 »

А стек это http://doc.qt.nokia.com/4.7-snapshot/qstack.html или что то еще?
Стек - область/кусок памяти для хранения временных данных. Компилятор автоматычно размещает все локальные переменные на стеке, при выходе из ф-ции эта память освобождается.

Хз как можно программировать (пусть на PHP) не зная что такое стек, регистры, команды  Непонимающий Непонимающий
Представь себе, что PHP это сладкая конфета которая портит зубы, но когда стресс очень хочется чего-то сладенького.
http://www.yaap.info/page/debug_backtrace-ili-kak-poluchit-stek-vyzova
а в низу приписка
Цитировать
Надеюсь, что все вы об этой функции знаете, но используете ее крайне редко (поскольку пишете код без ошибок и надобности в дебаге Подмигивающий.
Описал ее, чтоб не забыть самому =)
Записан
fuCtor
Гость
« Ответ #34 : Июнь 17, 2012, 19:44 »

Глобальная переменная все же это:

extern int var;

А singleton это singleton, не стоит путать теплое с мягким.
Из хорошей старой книжки
Цитировать
..на котором красовалась надпись ВАСТОК-2. Я подошел и исправил обе ошибки:  ВОСТОГ-2
Улыбающийся

Теперь сижу и думаю... толи это значит что я что-то сморозил не то ))) толи нет ))
Записан
mutineer
Гость
« Ответ #35 : Июнь 17, 2012, 22:07 »

создать переменную на стеке значит объявить её не указателем. пойди поучи C++.
Если я пойду читать про С++ будет 2 вещи
1) Я не смогу понять как реализовать прочитанное, к сожалению жизнь такая, что постоянная беготня лишает чувства которое возникает когда что то понял, если это тупо не работает значит не понял, если работает значит понял.
2) Если не смогу быстро реализовать несколько мелких проектов, боюсь времени и желания у меня уже может не быть.

В общем каждый выкручивается как может.

После такого признания в лени количество желающих помочь может резко сократиться:)
Записан
voron1980
Гость
« Ответ #36 : Июнь 18, 2012, 01:39 »

После такого признания в лени количество желающих помочь может резко сократиться:)
Да это так, можете почитать о лени
http://www.google.ru/#hl=ru&newwindow=1&sclient=psy-ab&q=%D0%BB%D0%B5%D0%BD%D1%8C+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%BD%D1%8B%D0%B9+%D0%BC%D0%B5%D1%85%D0%B0%D0%BD%D0%B8%D0%B7%D0%BC&oq=%D0%BB%D0%B5%D0%BD%D1%8C+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%BD%D1%8B%D0%B9+&aq=0K&aqi=g-K1&aql=&gs_l=hp.3.0.0i30.1110.3847.0.5020.14.13.0.1.1.3.685.2811.4j4j2j2j0j1.13.0...0.0.N7WgE4WjdZI&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=c76977525d0870fe&biw=1020&bih=563
думаю мы бы с вами сидели без работы если у людей отсутствовало чувство лени, они бы не захотели ничего автоматизировать, а делали бы все в ручную.
Ну и желание что-то делать на С++ у меня пока отбили, хороший урок для меня.
Записан
Alex_C
Гость
« Ответ #37 : Июнь 18, 2012, 09:13 »

Но теперь проект не компилируется
Предлагает покопаться в HEX кодах test2.o и не находит референс на класс А
G:\Programs\QT_Project\SingletonTest1/test1.h:6: undefined reference to `vtable for A'

Кстати на будущее: если в гугле набрать
Код:
undefined reference to `vtable for A'
то можно узнать , почему происходит эта ошибка. Улыбающийся
При возникновении подобного рода ошибок. проект нужно очистить, удалив все файлы, которые создает компиллятор и пересобрать проект. И эта ошибка с вероятностью 90% пропадет.
Я это делаю при помощи батника:
Код:
del /S /Q Obj 
del Makefile
del Makefile.Debug
del Makefile.Release
del object_script.*
В первой строчке удаляются все файлы из директории Obj - эта директория, которая в проекте у меня указана как
Код:
debug:OBJECTS_DIR = ./Obj/debug
!debug:OBJECTS_DIR = ./Obj/release
MOC_DIR = $$OBJECTS_DIR
Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.153 секунд. Запросов: 22.