Шаблон проектирования Singleton (одиночка), подбираю подходящий для моей задачи |
Здравствуйте, гость ( Вход | Регистрация )
Шаблон проектирования Singleton (одиночка), подбираю подходящий для моей задачи |
Litkevich Yuriy |
14.5.2008, 10:29
Сообщение
#21
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
=1=
ViGOur, у меня компилер ругается на такую строчку, из твоего варианта "одиночки":
говорит так: Цитата singleton.h:26: error: ISO C++ forbids declaration of `operator=' with no type я его пока закоментировал и вроде проблем не испытываю, но хочется чтоб все было правильно, что нужно исправить? =2= Обязательно ли мои методы, не отоносящиеся к основным "одиночки" типа InitInstance() и FreeInstance(), помечать как sttic? |
|
|
Andrew Selivanov |
14.5.2008, 11:11
Сообщение
#22
|
Участник Группа: Участник Сообщений: 249 Регистрация: 9.10.2007 Из: Москва Пользователь №: 3 Спасибо сказали: 15 раз(а) Репутация: 6 |
=1= ViGOur, у меня компилер ругается на такую строчку, из твоего варианта "одиночки":
говорит так: Цитата singleton.h:26: error: ISO C++ forbids declaration of `operator=' with no type я его пока закоментировал и вроде проблем не испытываю, но хочется чтоб все было правильно, что нужно исправить? Попробуй вот так специфицировать
|
|
|
ViGOur |
14.5.2008, 11:36
Сообщение
#23
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
|
|
|
Litkevich Yuriy |
14.5.2008, 11:43
Сообщение
#24
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
тогда вот так ругается :
Цитата singleton.h:26: warning: no return statement in function returning non-void хоть и не ошибка, но неприятно. |
|
|
LuckLess |
14.5.2008, 11:44
Сообщение
#25
|
Студент Группа: Новичок Сообщений: 31 Регистрация: 10.10.2007 Пользователь №: 8 Спасибо сказали: 0 раз(а) Репутация: 0 |
return *this;
|
|
|
Litkevich Yuriy |
14.5.2008, 11:46
Сообщение
#26
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
LuckLess, да вот так:
вообще не ругается |
|
|
LuckLess |
14.5.2008, 11:56
Сообщение
#27
|
Студент Группа: Новичок Сообщений: 31 Регистрация: 10.10.2007 Пользователь №: 8 Спасибо сказали: 0 раз(а) Репутация: 0 |
еще такой вариант синглтона..
Причина редактирования: поправил тег: code=cpp, так нагляднее
|
|
|
Litkevich Yuriy |
14.5.2008, 12:08
Сообщение
#28
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а для чего int I, она ведь неиспользуется, в шаблоне?
|
|
|
LuckLess |
14.5.2008, 14:13
Сообщение
#29
|
Студент Группа: Новичок Сообщений: 31 Регистрация: 10.10.2007 Пользователь №: 8 Спасибо сказали: 0 раз(а) Репутация: 0 |
для того чтобы ты мог создать два разных синглтона, одного типа.
например у тебя есть class User; ты хочеш чтобы был скажем глобальный залогиненный юзер - пишеш typedef LLSingleton<User> LoggedUser; далее ты хочеш еще иметь некого глобального юзера, под которым программа имеет доступ к базе.. пишеш typedef LLSingleton<User, 1> DbUser; получиш два разных синглтона, которые оба возвращают User*. |
|
|
Litkevich Yuriy |
16.5.2008, 12:50
Сообщение
#30
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
с каждым днем начинаю понимать пользу от единственного экземпляра класса, раньше думал: "пиши окуратно и дело с концом", а на практике выходит, что окуратность особо и не причем
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 2:10 |