![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| und3f |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 9.10.2007 Репутация: нет Всего: нет |
Компилирую с помощью Gcc 4.2.0
Во время линковки выдаёт: /tmp/ccUeoL15.o: In function `Singleton<config>::GetSingleton()': singleton.h:10: undefined reference to `Singleton<config>::instance' singleton.h:11: undefined reference to `Singleton<config>::instance' singleton.h:12: undefined reference to `Singleton<config>::instance' Если в config.cpp обьявить что-то вроде Singleton<config>::instance = 0; то компиляция проходит. Но ведь это не "нормальный" путь решения (?). Как решить? |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| und3f |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 9.10.2007 Репутация: нет Всего: нет |
:|
я пробывал. Вставлял что-то на подоби Singleton<ClassName>::instance = 0; после обьявления класса. В классе инициализировать не выходит тоже. |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| und3f |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 9.10.2007 Репутация: нет Всего: нет |
Спасибо. У меня есть книга где задета тема шаблонов но про инициализацию статических функций не сказано :(
|
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Это сообщение отредактировал(а) UnrealMan - 16.11.2007, 02:57 |
|||
|
||||
| und3f |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 9.10.2007 Репутация: нет Всего: нет |
Для уничтожения я создал метод destruct.
А после main выполняется процедура которая вызывает destruct у всех синглтонов. А кроме как ститеческим разве возможно реализовать сабж? |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Это сообщение отредактировал(а) UnrealMan - 16.11.2007, 02:56 |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
UnrealMan, не просвятишь почему? Добавлено через 5 минут и 53 секунды Имхо, это единственный адекватный способ регистрировать продукты в фабрике... -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Это сообщение отредактировал(а) UnrealMan - 16.11.2007, 02:55 |
|||
|
||||
| archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Спасибо, буду знать
Это ещё с какого перепугу? 0_о Просвети о хорошем способе -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
если
написан в cpp, то, вроде, UnrealMan прав. Но чето у меня чувство, что нужно писать это в ашнике. а насчет функции destroy тут вопрос, конечно, интересный. und3f, почему у тебя instance - это указатель? и почему он публичный? и вообще, мож у кого есть ссылка на нормальную шаблонную реализацию Синглтона? |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
http://loki-lib.sourceforge.net/ |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
А никто не говорит, что нужно писать в cpp. Точнее говоря, когда это написано в cpp, то никаких проблем не будет, но, понадобиться явно инстанцировать все требуемые специализации. Писать это нужно в .h и там никакой "проблемы" тоже не будет. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Это сообщение отредактировал(а) UnrealMan - 16.11.2007, 02:54 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |