C ++ объявляет статический объект в классе
Я пытаюсь объявить статический объект класса A, который я написал в другом классе B, например:
class A // just an example
{
int x;
public:
A(){ x = 4; }
int getX() { return x; }
};
class B
{
static A obj1; // <- Problem happens here
public:
static void start();
};
int main()
{
B::start();
}
void B::start()
{
int x = obj1.getX();
}
Чего я хочу добиться - это получитьint x
вB::start()
равномуint x
вclass A
(4).
Я пытался погуглить все это в течение последнего часа, и все, что я понял, это то, что C ++ не допускает объявления статических объектов. Это верно?
Если так, вот мой вопрос. Как я могу получить тот же результат? Каковы мои доступные обходные пути? Помня, что остальная часть моего кода зависит от того, какие функции в классе B являются статическими.
ошибка
ошибка LNK2001: неразрешенный внешний символ "private: статический класс A B :: obj1"
Спасибо!