| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Как сделать объект доступным все |
| Автор: Paradox 25.2.2003, 15:11 |
| Хочу создать свой класс- что-то вроде хранилища разной информации CMyStorage. Во время работы приложение может класть туда информацию, может черпать из него . Необходимо чтобы объект этого класса создавался в самом начале работы, сохранялся все время работы и был доступен из любого места моего приложения - мож кто знает как это сделать. |
| Автор: BlowFish 25.2.2003, 17:40 |
| объявить объект глобально... Можно не глобально, это зависит от типа твоего приложения |
| Автор: Step 25.2.2003, 19:04 |
| лучший способ это глобально, можно еще передавать во все классы указатель на объект, но это не удобный метод. |
| Автор: Paradox 26.2.2003, 02:49 |
| Я уже пытался. Пробовал объявить там же где и theApp, но почему то theApp видно а мой объект нет. |
| Автор: Step 26.2.2003, 02:52 |
| для визуала надо объявлять в файле stdafx.h |
| Автор: Paradox 27.2.2003, 14:11 |
| А как сделать так чтобы объект создавался в самом начале работы приложения ? |
| Автор: Step 27.2.2003, 18:45 |
| скажи какой объект |
| Автор: Vyacheslav 27.2.2003, 19:29 | ||||||
Используй паттерн Singleton, единственный экземпляр которого создается автоматически при первом обращении к нему
Теперь для того чтобы обратиться к этому объекту в любом месте делаем так
или еще проще
Объявлять глобальных объектов при этом не требуется. При первом обращении в программе Singleton::Instance() создаст объект. При последующих вызовах он просто вернет уже созданный объект. Если необходимо иметь уже данные инициализированные первоначальным значением, проинициализируй их в конструкторе |
| Автор: dim 28.2.2003, 02:10 |
| Если нужна экстраинициализация, то преимуществом глобальных объектов является то, что их конструкторы вызываются до main(WinMain). |
| Автор: Paradox 3.3.2003, 19:55 |
| Vyacheslav, спасибо большое... Все получилось Всем остальным тоже thanks |