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!
A B::obj1;