Compartilhar via


Erro do compilador C2352

'class::function': chamada inválida da função membro não estática

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

O seguinte exemplo gera o erro 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 seguinte exemplo gera o erro C2352 e mostra como corrigi-lo:

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

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