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