C ++ declarando un objeto estático en una clase
Estoy tratando de declarar un objeto estático de una clase A que escribí en una clase B diferente, así:
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();
}
Lo que quiero lograr es conseguirint x
enB::start()
A igualint x
enclass A
(4)
Intenté buscar en Google todo esto durante la última hora y todo lo que entendí fue que C ++ no permite declaraciones de objetos estáticos. ¿Es eso correcto?
Si es así, aquí está mi pregunta. ¿Cómo puedo obtener el mismo resultado? ¿Cuáles son mis soluciones alternativas disponibles? Teniendo en cuenta que el resto de mi código depende de que las funciones de la clase B sean estáticas.
Error
error LNK2001: símbolo externo no resuelto "privado: clase estática A B :: obj1"
¡Gracias!