C ++ deklariert ein statisches Objekt in einer Klasse

Ich versuche, ein statisches Objekt einer Klasse A zu deklarieren, das ich in einer anderen Klasse B geschrieben habe:

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();
}

Was ich erreichen will, ist @ zu bekommint x imB::start() gleichint x imclass A (4).

Ich habe in der letzten Stunde versucht, das alles zu googeln, und alles, was ich verstand, war, dass C ++ die Deklarationen statischer Objekte nicht zulässt. Ist das korrekt

Wenn ja, hier ist meine Frage. Wie kann ich das gleiche Ergebnis erzielen? Was sind meine verfügbaren Problemumgehungen? Denken Sie daran, dass der Rest meines Codes von den Funktionen in Klasse B abhängt, um statisch zu sein.

Erro

error LNK2001: nicht aufgelöstes externes Symbol "privat: statische Klasse A B :: obj1"

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage