C ++ declarando um objeto estático em uma classe

Estou tentando declarar um objeto estático de uma classe A que escrevi em uma classe B diferente, assim:

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

O que eu quero alcançar é obterint x noB::start() igualarint x noclass A (4)

Tentei pesquisar tudo isso na última hora e tudo o que entendi foi que o C ++ não permite declarações de objetos estáticos. Isso está correto?

Se assim for, aqui está a minha pergunta. Como posso obter o mesmo resultado? Quais são minhas soluções alternativas disponíveis? Tendo em mente que o restante do meu código depende das funções na classe B para serem estáticas.

Erro

erro LNK2001: símbolo externo não resolvido "privado: classe estática A B :: obj1"

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion