Partilhar via


Erro do compilador C2352

'class::function' : chamada ilegal de função de membro não estático

Observações

Uma static função de membro chamada função de membro não estático. Ou, uma função de membro não estático foi chamada de fora da classe como uma função estática.

Examples

O exemplo a seguir gera C2352 e mostra como corrigi-lo:

// C2352.cpp
// compile with: /c
class CMyClass {
public:
   static void func1();
   void func2();
   static void func3() {
      func2();   // C2352 calls nonstatic func2
      func1();   // OK calls static func1
   }
};

O exemplo a seguir gera C2352 e mostra como corrigi-lo:

// C2352b.cpp
class MyClass {
public:
   void MyFunc() {}
   static void MyFunc2() {}
};

int main() {
   MyClass::MyFunc();   // C2352
   MyClass::MyFunc2();   // OK
}