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


Автор: ivanp7 6.8.2011, 00:53
Имеется форма A, форма B и заголовочный файл H с определениями переменных, одну из них назовем X. 
мне нужно соединить файлы так, чтобы форма A имела доступ к форме B, форма B имела доступ к форме A и обе форме имели доступ к переменным из заголовочного файла H. 
юзаю #ifndef во всех .h файлах.
 
H.h: 
Код

static int X = 0; //без static линкер ругается на дублирование определения X


A.h:
Код

#include "B.h"
#include "H.h"
 
extern int X; 


B.h:
Код

#include "A.h"
#include "H.h"
  
extern int X; 


получается, что X в A.h и B.h - разные переменные (в этом и проблема).
Как исправить?

P.S. Я не совсем разобрался с extern, может что неправильно делаю?
P.P.S. гуглил по теме 2 дня, ничего не нагуглил

Автор: volatile 6.8.2011, 01:36
int X = 0; // Это помещаете в .cpp (не в .h !) файлик.
В какой вам больше нравится, но только в один!

extern int X; // Это пишете в любых .h файлах или .cpp, там где нужно.
(формально extern ... можно писать где угодно и сколько угодно.)


Автор: ivanp7 6.8.2011, 14:54
volatile, 
спасибо, сработало

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