description | title | ms.date | f1_keywords | helpviewer_keywords | ms.assetid | ||
---|---|---|---|---|---|---|---|
Learn more about: Compiler Error C2597 | Compiler Error C2597 | 11/04/2016 |
|
| 2e48127d-e3ff-4a40-8156-2863e45b1a38 |
illegal reference to non-static member 'identifier'
Possible causes:
A nonstatic member is specified in a static member function. To access the nonstatic member, you must pass in or create a local instance of the class and use a member-access operator (
.
or->
).The specified identifier is not a member of a class, structure, or union. Check identifier spelling.
A member access operator refers to a nonmember function.
The following sample generates C2597 and shows how to fix it:
// C2597.cpp// compile with: /cstructs1 { staticvoidfunc(); staticvoidfunc2(s1&); int i; }; voids1::func() { i = 1; // C2597 - static function can't access non-static data member } // OK - fix by passing an instance of s1voids1::func2(s1& a) { a.i = 1; }