Compiler Error C2654

'identifier' : attempt to access member outside a member function

The specifed identifier was accessed in a declaration.

Member data can only be accessed in member functions.

This error can be caused by trying to initialize variables in a declaration. A constructor should be used for this purpose.

The following is an example of this error:

class A
{
   int i;
   int j = i;  // error, access outside function
   void setj( void ) { j = i ; }  // OK, access in function
   A( int ai )
   {
      i = ai;  // OK, initializes i and j
      j = i;
   }
} a( 1 );