コンパイラ エラー C2597
静的でないメンバー 'identifier' への参照が正しくありません
考えられる原因:
静的でないメンバーが静的メンバー関数に指定されている。 静的でないメンバーにアクセスするには、クラスのローカル インスタンスを渡すかまたは作成し、メンバー アクセス演算子 (
.
または->
) を使用する必要があります。指定された識別子が、クラス、構造体、または共用体のメンバーではない。 識別子のスペルを確認します。
メンバー アクセス演算子が非メンバー関数を参照している。
次の例では、C2597 を生成し、その修正方法を示しています。
// C2597.cpp
// compile with: /c
struct s1 {
static void func();
static void func2(s1&);
int i;
};
void s1::func() {
i = 1; // C2597 - static function can't access non-static data member
}
// OK - fix by passing an instance of s1
void s1::func2(s1& a) {
a.i = 1;
}