class — Дополнительные классы и переменная extern в переполнении стека

У меня проблемы с соединением файлов. Есть классы, которые я использую:

заголовок класса 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;

Кто-нибудь может мне помочь?

0

Решение

Линия

extern A globalInstanceOfA;

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

Линия

A globalInstanceOfA;

входит в любой из ваших файлов cpp, чтобы обеспечить определение для глобальной переменной. Должно быть ровно одно определение среди всех файлов cpp в вашей программе.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]