Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 27.9.2009, 21:16 |
Обновил старую тему (выложил свой вариант) | |
ufna | Дата 27.9.2009, 19:08 |
когда этот класс делал, о синглетонах не знал. Потому сделал то, что мне было нужно - т.е. простой доступ к единому инстансу класса, причем если вдруг создаю где-то еще такое, то узнаю точно. | |
BRE | Дата 27.9.2009, 17:44 |
Но я заметил одну вещь которую я возможно не понял и не сделал это во всех примерах есть такая вешь как : Singleton* Singletone::_instance = 0; Вот что это и где ето нужно обьевлять ? Это нужно писать в файле реализации. Это определение самой статической переменной. ufna, а почему ты конструктор класса ни в шаблоннном классе ни в наследнике не прячешь? Одна из особенностей одиночек - недоступность трёх членов: конструктор, конструктор копирования, оператор присваивания. Да это не совсем singleton и его по другому не создать. |
|
Litkevich Yuriy | Дата 27.9.2009, 17:00 |
ufna, а почему ты конструктор класса ни в шаблоннном классе ни в наследнике не прячешь? Одна из особенностей одиночек - недоступность трёх членов: конструктор, конструктор копирования, оператор присваивания. |
|
maxvanceffer | Дата 27.9.2009, 16:58 |
Так ребята сделал по книжке Э.Гамма ,Р.Хелм, Р.Джонсон и есть ощибка от компилятора : c:/Qt/2009.03/qt/include/QtCore/../../src/corelib/tools/qlist.h:(.text$_ZN4user8INSTANSEEv[user::INSTANSE:-1: error: undefined reference to `user::instance' Но я заметил одну вещь которую я возможно не понял и не сделал это во всех примерах есть такая вешь как : Singleton* Singletone::_instance = 0; Вот что это и где ето нужно обьевлять ? |
|
maxvanceffer | Дата 27.9.2009, 15:37 |
Ух как закрученно у тебя ))) | |
ufna | Дата 27.9.2009, 15:11 |
Может быть, поможет. Я сам сделал вот так: a_singleton.h
Соответсвенно, нужный класс создается: myclass.h
myclass.cpp
Соответственно, доступ по MY_CLASS_OBJECT. |
|
maxvanceffer | Дата 27.9.2009, 14:44 |
Да я понемаю его опасность. Но задача такова что есть много классов окан где нужна информация из этого синглтона. То есть класс синглтон в моей программе это класс данных. Тут мне он и нужен. Чтобы эта инфа была видна во всех классах. И все классы знали что и где лежит. Почему я прикрутил к этому вопросу кт , это что у кт есть класс глобал, в котором много чего. И я о нём я знаю очень мало. Только то что пока использовал. И думал может в кт глобал есть что то подобное уже готовое ! |
|
rnd | Дата 27.9.2009, 10:11 |
сообс-но qt и сингелтон - это ортогональыне понятия, т.е. никак не связаны. Есть несколько основных способов реализации (подробнее в книгах Майерса, Александреску и Уилсона). А вообще сингелтон - довольно опасный паттерн, у которого есть нетривиальные моменты. Если есть возможность - лучше обойтись не глобальным доступом к объекту, а передачей указателя во все необходимый функции. Если сингелтонов несколько - установить явный порядок создания\уничтожения. |
|
ViGOur | Дата 27.9.2009, 1:20 |
Глянь тему: Шаблон проектирования Singleton (одиночка), подбираю подходящий для моей задачи. Или просто поиск: Singleton |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 20.4.2024, 11:34 |