У меня проблемы с соединением файлов. Есть классы, которые я использую:
заголовок класса A в файле A.h
class A
{
public:
B someVariable; //there is class B used!!
int number;
};
заголовок класса B в файле B.h
class B
{
public:
void someMethod();
};
реализация Б
B::someMethod()
{
cout << "Value is:" << globalInstanceOfA.number << "\n";
}
А затем в другом файле мне нужно объявить глобальную переменную globalInstanceOfA, которую я буду использовать во всей программе …
Но я не могу решить, куда поместить include, extern и так далее. Я пробовал что-то подобное:
#include "A.h"#include "B.h"
extern A globalInstanceOfA;
Кто-нибудь может мне помочь?
Линия
extern A globalInstanceOfA;
идет в заголовочный файл, который вы должны включить, чтобы использовать переменную globalInstanceOfA
; это обеспечивает декларация глобальной переменной.
Линия
A globalInstanceOfA;
входит в любой из ваших файлов cpp, чтобы обеспечить определение для глобальной переменной. Должно быть ровно одно определение среди всех файлов cpp в вашей программе.
Других решений пока нет …