crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Типизированный синглтон расширение
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 27.2.2013, 22:44
  ViGOur,
Цитата(ViGOur @ 27.2.2013, 11:21) *
Думается мне, что не правильно, когда к закрытым счетчикам класса, которые инкрементируются-декрементируются в двух его методах, имеют доступ все кому не лень сделать дочерний класс!


тут где-то не хватает запятых, поэтому я не совсем понял смысл предложения :))

делай private , и никто, кроме родительского класса не будет иметь доступ. Делов то.
AD Дата 27.2.2013, 16:11
 
Цитата(ViGOur @ 27.2.2013, 9:21) *
Чувау

Думается мне, что не правильно, когда к закрытым счетчикам класса, которые инкрементируются-декрементируются в двух его методах, имеют доступ все кому не лень сделать дочерний класс!

Думаю, что тут стоит как раз решение Влада применить:
http://www.forum.crossplatform.ru/index.ph...c=8976&st=0
lanz Дата 27.2.2013, 9:35
 
Цитата(ViGOur @ 26.2.2013, 18:07) *
А тогда как за нимим следить проще чтобы не плодить?

Сделать один синглтон(а лучше просто класс), который будет их плодить и владеть ими, по запросу либо возвращать уже созданный, либо создавать новый.
При этом можно приделать счетчик ссылок, но мне кажется это не очень хорошо - заставлять пользователей синглтона удалять его/их (это получается уже фабрика а не синглтон).

Цитата
Думается мне, что не правильно, когда к закрытым счетчикам класса, которые инкрементируются-декрементируются в двух его методах, имеют доступ все кому не лень сделать дочерний класс!

Кому очень хочется, тот и #define private public сделает, его не остановить :lol:
ViGOur Дата 27.2.2013, 8:21
  Чувау
Цитата(Алексей1153 @ 26.2.2013, 21:29) *
Ну а то, что ты предпочёл шаблон там, где нужно было применить виртуальное наследование - это кто ж виноват :)
:-D

Думается мне, что не правильно, когда к закрытым счетчикам класса, которые инкрементируются-декрементируются в двух его методах, имеют доступ все кому не лень сделать дочерний класс!
Алексей1153 Дата 26.2.2013, 20:29
 
Цитата(ViGOur @ 26.2.2013, 17:24) *
который создает-возвращает указатель на класс типа T, то при вызове:
delete p; // указатель на класс типа T
вызываться декремент счетчика ссылок у нас не будет и его нужно вызывать в ручную, что чревато ошибками!


что тут читать внимательнее то: при вызове delete вызовется деструктор (в случае виртуального - начиная с детей, заканчивая родителем). В родительском классе уменьшаем счётчик.

Ну а то, что ты предпочёл шаблон там, где нужно было применить виртуальное наследование - это кто ж виноват :)
ViGOur Дата 26.2.2013, 20:26
  Алексей1153, читай внимательней... ;)

Iron Bug, согласен синхронизация всегда нужна. В примере я все упростил, чтобы было понятней...
Сейчас почитаю.
Iron Bug Дата 26.2.2013, 17:51
  тема синглтона, на самом деле, не такая простая, как кажется. это уже тут обсуждалось:
http://www.forum.crossplatform.ru/index.php?showtopic=8976
если делать всё по-честному, там нужны двойные локи. можно сделать ну очень красивый синглтон с типами, в С++11. но это не поддерживает msvc, например.
Алексей1153 Дата 26.2.2013, 17:14
  ViGOur, конструктор и виртуальный деструктор рулят :) Счётчик - (опять это слово :D ) инкапсулированный статический синглтон класса
ViGOur Дата 26.2.2013, 17:07
  А тогда как за нимим следить проще чтобы не плодить?
lanz Дата 26.2.2013, 16:17
  Может тогда вообще не стоит делать их синглтонами?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.4.2024, 21:00