var не является членом внутреннего класса.
Чтобы получить доступ к var, следует использовать указатель или ссылку на экземпляр внешнего класса. например pOuter-> var будет работать, если внутренний класс является другом внешнего, или, если var является общедоступным, если строго следовать стандарту C ++.
Некоторые компиляторы рассматривают внутренние классы как друга внешних, но некоторые не могут. См. этот документ для компилятора IBM :
"Вложенный класс объявляется в области действия другого класса. Имя вложенного класса является локальным по отношению к включающему его классу. Если вы не используете явные указатели, ссылки или имена объектов, объявления во вложенном классе могут использовать только видимые конструкции, включая имена типов, статические члены и перечислители из включающего класса и глобальных переменных.
Функции-члены вложенного класса следуют правилам обычного доступа и не имеют специальных привилегий доступа для членов своих вложенных классов. Функции-члены включающего класса не имеют специального доступа к членам вложенного класса. "