Здравствуйте, гость ( Вход | Регистрация )
Алексей1153 | Дата 27.2.2013, 22:44 |
ViGOur, Думается мне, что не правильно, когда к закрытым счетчикам класса, которые инкрементируются-декрементируются в двух его методах, имеют доступ все кому не лень сделать дочерний класс! тут где-то не хватает запятых, поэтому я не совсем понял смысл предложения ) делай private , и никто, кроме родительского класса не будет иметь доступ. Делов то. |
|
AD | Дата 27.2.2013, 16:11 |
Чувау Думается мне, что не правильно, когда к закрытым счетчикам класса, которые инкрементируются-декрементируются в двух его методах, имеют доступ все кому не лень сделать дочерний класс! Думаю, что тут стоит как раз решение Влада применить: http://www.forum.crossplatform.ru/index.ph...c=8976&st=0 |
|
lanz | Дата 27.2.2013, 9:35 |
А тогда как за нимим следить проще чтобы не плодить? Сделать один синглтон(а лучше просто класс), который будет их плодить и владеть ими, по запросу либо возвращать уже созданный, либо создавать новый. При этом можно приделать счетчик ссылок, но мне кажется это не очень хорошо - заставлять пользователей синглтона удалять его/их (это получается уже фабрика а не синглтон). Цитата Думается мне, что не правильно, когда к закрытым счетчикам класса, которые инкрементируются-декрементируются в двух его методах, имеют доступ все кому не лень сделать дочерний класс! Кому очень хочется, тот и #define private public сделает, его не остановить |
|
ViGOur | Дата 27.2.2013, 8:21 |
Чувау Ну а то, что ты предпочёл шаблон там, где нужно было применить виртуальное наследование - это кто ж виноват :-DДумается мне, что не правильно, когда к закрытым счетчикам класса, которые инкрементируются-декрементируются в двух его методах, имеют доступ все кому не лень сделать дочерний класс! |
|
Алексей1153 | Дата 26.2.2013, 20:29 |
который создает-возвращает указатель на класс типа 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, конструктор и виртуальный деструктор рулят Счётчик - (опять это слово ) инкапсулированный статический синглтон класса | |
ViGOur | Дата 26.2.2013, 17:07 |
А тогда как за нимим следить проще чтобы не плодить? | |
lanz | Дата 26.2.2013, 16:17 |
Может тогда вообще не стоит делать их синглтонами? | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.4.2024, 21:00 |