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!