Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Классы-синглтоны с зависимостями должны удаляться в определенном порядке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как переписать строку из char buf[20] в wchar_t buf1[20]; ? http://www.cyberforum.ru/cpp-beginners/thread1245471.html
Как переписать строку из char buf в wchar_t buf1; ?
C++ Выделение памяти в процессе выполнения функции есть массив указателей на int, объявленный глобально int* arr; но заранее я не знаю, сколько мне понадобится одномерных массивов - один или все 10. память нужно выделять во время исполнения... http://www.cyberforum.ru/cpp-beginners/thread1245461.html
C++ Считать массив байт в переменную типа int в обратном порядке
Есть массив байт: char byData = {0x87, 0xd6, 0x12, 0x00}; Нужно считать его в переменную типа int в обратном порядке, т.е. должно получится hex-число 0x0012D687 Пытаюсь как-то так: int c = 0; c...
C++ Русский язык в консоли
Здравствуйте. Чего-то не разберусь с русским языком. setlocale(LC_ALL,"RUSSIAN"); и setlocale(LC_ALL,"1251"); - классно. Мне нужно вводить выводить с клавиатуры, а так же из текстового файла....
C++ Дайте ссылку на Dshow http://www.cyberforum.ru/cpp-beginners/thread1245396.html
Помогите! Киньте мне силку на dshow.a, никак не могу найти
C++ Необходимо хранить список типов, и пользоваться ими, например, вызывать конструкторы Здравствуйте! Мне необходимо хранить список типов, и пользоваться ими, например, вызывать конструкторы. Я нашел вариант решения проблемы в известной книге А. Александреску, но книга писалась... подробнее

Показать сообщение отдельно
relationer
33 / 0 / 0
Регистрация: 07.11.2013
Сообщений: 118

Классы-синглтоны с зависимостями должны удаляться в определенном порядке - C++

21.08.2014, 20:34. Просмотров 210. Ответов 2
Метки (Все метки)

Здравствуйте!

Пишу классы-синглтоны с зависимостями. Храню их в статической памяти. Проблема в том, что они должны удаляться в определенном порядке - я регистрирую зависимости. Однако, когда в конце программы компилятор сам вызывает деструкторы, то, сначала разрушается объект производного класса (я наследую синглтоны от Service), и только потом я могу обработать зависимости, что не есть хорошо. Вариант с синглтоном-фениксом мне не подходит.

У меня есть следующие возможные варианты решения проблемы:
1) не хранить синглтоны в статической памяти, или хранить указатели на них
2) хранить в статической памяти что-нибудь вроде ServiceHandle, который в деструкторе будет обрабатывать зависимости и удалять "свой" синглтон.
3) использовать функцию atexit (не в смысле того, что описывал Александреску): т. к. она, по идее, вызывается ДО освобождения статической памяти, то там можно все корректно удалить, но тогда нужно будет решать проблему с двойным вызовом деструкторов, хранить дополнительные данные
И так далее, наподобие предыдущих, частично схожих идей.

Что мне делать в данном случае?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru