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


Автор: quarz 14.4.2009, 11:23
В принципе, этот вопрос не привязан конкретно к билдеру, но у меня возникли траблы именно с ним.

Программа состоит из двух юнитов:
main.cpp, main.h
display.cpp, display.h

Следуя общепринятым правилам, в main.h у меня заголовки функций, а так же описаны глобальные переменные
А теперь мне надо в display.cpp вызвать одну из глобальных переменных. Я подключаю #include "main.h" и компилятор мне выдает кучу варнингов:
Код

[Linker Warning] Public symbol '_service_device' defined in both module ....\MAIN.OBJ and ....\DISPLAY.OBJ
...и т.д.


В книгах такие вопросы почему-то не освещены.

Автор: xvr 14.4.2009, 11:58
глобальные переменные по 'общепринятым правилам' в .h файлах не описывают. А описывают там только их extern.

Цитата

В книгах такие вопросы почему-то не освещены. 
'Такие вопросы' всплывают во всех форумах, хоть как то связанных с програмированием, с завидной регулярностью  smile 

Автор: Лапоть 14.4.2009, 13:47
2 модуля и глобальные переменные? А не проще ли эти переменные загнать в public-секцию main.h и приинклюдить его в display.cpp?
А ещё лучше оформить их, как свойства класса.

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