|
|
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
компилятор gcc Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. и map<string,string>* _prm; объявлял как статик и просто map<string,string> _prm; (без инициализации _prm = new map<string,string>(); ) то выдает ошибку компиляции, то выдет sigfault приобращении к _prm. что посоветуете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 17:34:17 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Можно начать с того, что map должна быть статической, далее инициализации static свойств нет, и не понятно зачем instanseFlag. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 17:45:04 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. Код: plaintext 1. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:08:43 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Сначала надо убрать статический метод класса из хидера в сpp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:13:32 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Можно, на мой вгляд, прекрасно обойтись без динамической памяти: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:46:37 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
blindedСначала надо убрать статический метод класса из хидера в сpp И что это изменит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:47:21 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
blindedСначала надо убрать статический метод класса из хидера в сpp да он, вроде, не мешает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:49:57 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
AkhМожно начать с того, что map должна быть статической, далее инициализации static свойств нет, и не понятно зачем instanseFlag. Мембер map, по-сути, быть статическим мембером быть не должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 18:51:36 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 19:15:53 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Дался вам этот синглтон... У него же функционала никакого нет, кроме хранения ОДНОГО мапа. Нельзя тупо создать один СТАТИЧЕСКИЙ мап и юзать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 19:20:21 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Изыди! Это модель! Кстати вон там валяется на скрепке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 19:27:37 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
И вот это тоже надо, наверное, исправить: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 19:41:38 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
blinded Код: plaintext 1. 2. 3. 4. У вас неверное понимание статических функций класса. То что вы сейчас сказали относится лишь к статическим переменным определенных в заголовочном файле. Что же касается приведенного кода, то он благополучно будет возвращать один единственный экземпляр класса Params, созданный при первом входе в статическую фукцию класса getInstance(). Учите матчасть ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 21:27:17 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
У меня очень правильное понимание... Реализаций статического метода будет ровно по одному на каждый модуль и в каждом модуле будет своя локальная статическая переменная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 21:51:24 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
blindedУ меня очень правильное понимание... Реализаций статического метода будет ровно по одному на каждый модуль и в каждом модуле будет своя локальная статическая переменная Вы говорите ерунду. Вы хотя бы проверьте это на своем любимом компиляторе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 22:02:08 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
AkhМожно начать с того, что map должна быть статической, далее инициализации static свойств нет, и не понятно зачем instanseFlag. пример взят от сюда http://www.codeproject.com/cpp/singletonrvs.asp попробовал без instanseFlag - все работает, действительно лишний ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 22:02:38 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
blindedУ меня очень правильное понимание... Реализаций статического метода будет ровно по одному на каждый модуль и в каждом модуле будет своя локальная статическая переменная Статическая функция и статический метод класс - это две большие разницы. Вы выдимо провели аналогию, а этого делать не стоило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 22:06:57 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
следал так (временно) все Ваши пожелания учту и исправлю. что касается return _prn[key] на _prn->find(key) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. в маине надо прописать иначе возникнут ошибки компиляции Код: plaintext 1. 2. Возможно, можно было и не использовать map<string,string> * Params::_prm = new map<string,string>(); а иннициализировать как-то map статически - но ничего не получилось. если есть пожелания по улучшению кода, то я с большим удовольствием их приму всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 22:13:39 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
AkhМожно начать с того, что map должна быть статической, далее инициализации static свойств нет, и не понятно зачем instanseFlag.пример синглетона взят от сюда http://www.codeproject.com/cpp/singletonrvs.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 22:16:20 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков AkhМожно начать с того, что map должна быть статической, далее инициализации static свойств нет, и не понятно зачем instanseFlag. Мембер map, по-сути, быть статическим мембером быть не должен. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 10:07:13 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
akalend AkhМожно начать с того, что map должна быть статической, далее инициализации static свойств нет, и не понятно зачем instanseFlag.пример синглетона взят от сюда http://www.codeproject.com/cpp/singletonrvs.asp Так там существование синглетона им и проверяется, а у ты проверяешь указатель. Т.е. ты обошелся без флага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 10:08:46 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Akh Так там существование синглетона им и проверяется, а у ты проверяешь указатель. Т.е. ты обошелся без флага. да, обошелся без флага - уберу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 18:02:28 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
авторМембер map, по-сути, быть статическим мембером быть не должен. а как тогда лучше реализовать. в конструкторе сделать динамическое размещение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 18:03:42 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
akalend авторМембер map, по-сути, быть статическим мембером быть не должен. а как тогда лучше реализовать. в конструкторе сделать динамическое размещение? Я привел вариант без динамичкой памяти. Вы его смотрели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 18:13:44 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков Мембер map, по-сути, быть статическим мембером быть не должен. Что за суть такая? С сиглом, правда, разницы особой нет... Но если и статик - кому это мешает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 19:30:48 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков Я привел вариант без динамичкой памяти. Вы привели вариант без new. Динамическая память там всё равно есть. Что по Вашему делает Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 19:37:21 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
MacKintosh Анатолий Широков Мембер map, по-сути, быть статическим мембером быть не должен. Что за суть такая? С сиглом, правда, разницы особой нет... Но если и статик - кому это мешает? Суть, как всегда, заключается в здравом смысле и логике. Член данных map хоть и является единственным экзмепляром для всего приложения, но это не его заслуга, а заслуга класса членом которого он является, поскольку экземпляр этого класса должен быть только один. Поэтому с точки зрения концептуальной чистоты, данные, которые описывают состояние объекта (а не семейста) должны быть членами данных класса, а не статическими членами данных (сорри за дубль, но иначе не скажешь). Объяви map статиком и мы допустим семантическую ошибку, заявив о том, что map является состоянием семейства объектов класса, а не конкретного экземпляра. Ну, вообщем, понятно. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 19:46:36 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
MacKintosh Анатолий Широков Я привел вариант без динамичкой памяти. Вы привели вариант без new. Динамическая память там всё равно есть. Что по Вашему делает Код: plaintext 1. Ну это уже придирки. Разумеется там динамическая память есть, конечно. Но когда я это писал, я хотел акцентировать внимание на том, что нет нужды выделять память под map и только. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 19:51:52 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков MacKintosh Анатолий Широков Мембер map, по-сути, быть статическим мембером быть не должен. Что за суть такая? С сиглом, правда, разницы особой нет... Но если и статик - кому это мешает? это не его заслуга, а заслуга класса членом которого он является Верно. А вот если сделать map статиком, это уже будет его заслугой. Если даже у нас не будет сингла, все парамсы смогут иметь общий map. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 19:52:12 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
MacKintosh Анатолий Широков MacKintosh Анатолий Широков Мембер map, по-сути, быть статическим мембером быть не должен. Что за суть такая? С сиглом, правда, разницы особой нет... Но если и статик - кому это мешает? это не его заслуга, а заслуга класса членом которого он является Верно. А вот если сделать map статиком, это уже будет его заслугой. Если даже у нас не будет сингла, все парамсы смогут иметь общий map. Еще раз повторю, то что является состоянием объекта, надо делать членом данных. Сам map никакой семантической нагрузки не несет, он приобретает смысл в контексте некоторой концепции. В данном случае этой концепцией является "менеджер параметров" (Params). И если будет сказано, что все экземпляры этого класса должны разделять одно и тоже множество параметров, то только в этом случае мы объявим map как static и то это будет деталью реализации, а не вещью в себе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 19:59:02 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков Суть, как всегда, заключается в здравом смысле и логике. Член данных map хоть и является единственным экзмепляром для всего приложения, но это не его заслуга, а заслуга класса членом которого он является, поскольку экземпляр этого класса должен быть только один. Поэтому с точки зрения концептуальной чистоты, данные, которые описывают состояние объекта (а не семейста) должны быть членами данных класса, а не статическими членами данных (сорри за дубль, но иначе не скажешь). Объяви map статиком и мы допустим семантическую ошибку, заявив о том, что map является состоянием семейства объектов класса, а не конкретного экземпляра. Ну, вообщем, понятно. :) понятно, надо убрать map из статики. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 22:24:36 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
где инициализировать map? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 22:26:41 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
akalendгде инициализировать map? В конструкторе Params. Только еще раз повторю, нет никакой нужды в том, чтобы размещать ваш map в динамической памяти - если вы откажетесь от указателя, то map инициализируется по умолчанию сам: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 22:51:30 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 17:03:25 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
почему я задал этот вопрос, потому-что при вышеприведенном коде я пробовал и у меня выдавало на код Код: plaintext 1. 2. 3. 4. по этому я и решил сделать динамическое размещение мар ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 17:05:23 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
а также делал и с Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 17:06:55 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
объявлял Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 17:08:18 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
что есть за зверь Signal11 надо догадаться по каким признакам, интересно? текста там никакого нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 17:19:58 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
akalendобъявлял Код: plaintext У меня предложение. Скопируйте к себе следующий код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Он работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 17:36:44 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Гы сигнал 11 - Segmentation Fault Core Dumped ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 18:28:30 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
$ g++ singleton2.cpp singleton2.cpp: In static member function `static Params& Params::getInstance()': singleton2.cpp:13: error: `signleton' was not declared in this scope singleton2.cpp:30:2: warning: no newline at end of file ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 19:11:13 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
код работает, в имене переменной была допущена синтактич. ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 19:20:43 |
|
||
|
использование map в синглетоне
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 19:23:15 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2027932]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
174ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 186ms |
| total: | 454ms |

| 0 / 0 |
