I'm trying to declare a static object of a class A that I wrote in a different class B, like this:
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();
}
What I want to achieve is to get int x in B::start() to equal int x in class A (4).
I tried googling all this for the past hour and all I understood was that C++ doesn't allow static objects' declarations. Is that correct?
If so, here's my question. How can I get the same result? What are my available workarounds? Keeping in mind that the rest of my code depends on the functions in class B to be static.
Error
error LNK2001: unresolved external symbol "private: static class A B::obj1"
Thanks!
 
     
    