Примеры использования Паттерн Singleton (Одиночка) | страница 7
>class TSingeltonPtr
>{
> T *_t;
>public:
> TSingeltonPtr() { _t = T::Instance(); }
> ~TSingeltonPtr() { if(_t) _t->FreeInst(); }
> operator T*() { return _t; }
> T* operator->() { return _t; }
> bool operator!() const { return _t==0; }
>};
использование:
>class Derived : public Singleton
>{
>void foo();
>...
>};
>void bar()
>{
> TSingeltonPtr
> if ( !sp ) return;
> sp->foo();
>}
konst 11.12.2002 19:17
Все таки непонятно, откуда пошла дурацкая мода в с++ коде давать данным-членам класса символ подчеркивания в качестве префикса? То есть, и так ясно откуда...
Но ведь c++ не java... Например на MCVC++ код с такими префиксами не компилируется иногда. Ведь сказано же, зарезервировано под надобности компиляторов. Или это специально так отформатировано, чтобы читать было красивее? ;)
А статья действительно хорошая, удивило то что почти не пересекается с [3] ;)
Пересыпкин Михаил Алексеевич 3.12.2002 16:39
Еще хочу добавить: почему Instance() возвращает указатель а не ссылку? Тогда и путаницы с delete не будет!
Sergeem 19.11.2002 12:56
Интересно обсудить эту тему.
Например у меня есть синглтон - менеджер памяти, синглтон - БД-клиент, и т.д.
Тогда менеджер памяти должен "уходить" последним, поскольку другие с-тоны могут освобождать память в своих деструкторах. Интересный вариант есть в loki. Я реалиовал свою модель. феслт кому интересно, могу поделиться или обсудить где-нить в С++ форуме.
Sergeem 19.11.2002 12:52