I have a class in which I declare a friendship to another class outside the namespace. Now that class has a static integer I want to access.
Here is the code:
    class A
    {
    public:
        void init();
    };
    namespace C
    {
    class B 
    {
       friend class ::A;
    private:
        static int i;
    };
    }
    void A::init()
    {
        C::B::i=3;
    }
    int main()
    {
        A f;
        f.init();
        return 0;
    }
Now if I compiled this code I get the following error:
  /tmp/ccmDINqo.o: In function `A::init()':
  friendclass.cpp:(.text+0xa): Undefined reference to `C::B::i'
  collect2: error: ld returned 1 exit status
Now for what I understand, the declaration is there so init() is actually trying to assign a value to i.
I think compilation works fine, but the linker seems to complain.
Why does this code not build and how can I fix it so it will build?
