First of all, you are trying to access non-static member var outside the class which is not allowed in C++.
Mark's answer is correct.
Anything that is part of Outer should have access to all of Outer's members, public or private.
So you can do two things, either declare var as static or use a reference of an instance of the outer class to access 'var' (because a friend class or function also needs reference to access private data).
Static var
Change var to static If you don't want var to be associated with the instances of the class.
#include <iostream>
class Outer {
private:
    static const char* const MYCONST;
    static int var;
public:
   class Inner {
    public:
        Inner() {
          Outer::var = 1;
        }
        void func() ;
    };
};
int Outer::var = 0;
void Outer::Inner::func() {
    std::cout << "var: "<< Outer::var;
}
int main() {
  Outer outer;
  Outer::Inner inner;
  inner.func();
}
Output- var: 1
Non-static var
An object's reference is a must to access any non-static member variables.
#include <iostream>
class Outer {
private:
    static const char* const MYCONST;
    int var;
public:
   class Inner {
    public:
        Inner(Outer &outer) {
          outer.var = 1;
        }
        void func(const Outer &outer) ;
    };
};
void Outer::Inner::func(const Outer &outer) {
    std::cout << "var: "<< outer.var;
}
int main() {
  Outer outer;
  Outer::Inner inner(outer);
  inner.func(outer);
}
Output- var: 1
Edit - External links are links to my Blog.