Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > порядок выполнения файлов


Автор: nerdy_weirdie 2.5.2008, 04:49
Как в Visual C++ 2005 изменить порядок выполнения файлов? Необходимо повлиять на порядок вызовов конструкторов глобальных переменных и статических членов классов, находящихся в разных файлах.

Автор: Fazil6 2.5.2008, 09:14
Цитата(nerdy_weirdie @  2.5.2008,  04:49 Найти цитируемый пост)
Необходимо повлиять на порядок вызовов конструкторов глобальных переменных и статических членов классов, находящихся в разных файлах. 

 
инкапсулировать доступ к глобальным данным в функции. т.е вместо глобальной переменной использовать функцию, которая возвращает ссылку на эту переменную, а саму переменную сделать статической внутри этой функции и переменные будут создаваться не как решит компилятор, а когда к ним будут обращаться

Автор: nerdy_weirdie 2.5.2008, 13:30
Цитата(Fazil6 @ 2.5.2008,  09:14)
Цитата(nerdy_weirdie @  2.5.2008,  04:49 Найти цитируемый пост)
Необходимо повлиять на порядок вызовов конструкторов глобальных переменных и статических членов классов, находящихся в разных файлах. 

 
инкапсулировать доступ к глобальным данным в функции. т.е вместо глобальной переменной использовать функцию, которая возвращает ссылку на эту переменную, а саму переменную сделать статической внутри этой функции и переменные будут создаваться не как решит компилятор, а когда к ним будут обращаться

Спасибо за ответ! Хороший вариант, только довольно трудоемкий для большой, обросшей бородой софтины.. И для статических членов классов надо-бы что-нибудь другое придумать.
Может всётки можно как-то задать порядок выполнения файлов? ))

Автор: Fazil6 2.5.2008, 15:42
Цитата(nerdy_weirdie @  2.5.2008,  13:30 Найти цитируемый пост)
Может всётки можно как-то задать порядок выполнения файлов? )) 

нет. Порядок создания переменных в разных единицах компилляции неопределен по стандарту

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)