Delen via


Compilerfout C2276

operator: ongeldige bewerking voor de expressie van de afhankelijke lidfunctie

Opmerkingen

De compiler heeft een probleem gevonden met de syntaxis die wordt gebruikt voor het maken van een aanwijzer naar lid.

Er wordt vaak een fout C2276 veroorzaakt wanneer u probeert een aanwijzer naar lid te maken met behulp van een exemplaarvariabele om het lid te kwalificeren in plaats van een klassetype. Mogelijk ziet u deze fout ook als u een lidfunctie probeert aan te roepen met behulp van de verkeerde syntaxis.

Example

In dit voorbeeld ziet u verschillende manieren waarop C2276 kan optreden en hoe u deze kunt oplossen:

// C2276.cpp
class A {
public:
   int func(){return 0;}
} a;

int (*pf)() = &a.func;   // C2276
// pf isn't qualified by the class type, and it 
// tries to take a member address from an instance of A.
// Try the following line instead:
// int (A::*pf)() = &A::func;

class B : public A {
public:
   void mf() {
      auto x = &this -> func;   // C2276
      // try the following line instead
      // auto x = &B::func;
   }
};

int main() {
   A a3;
   auto pmf1 = &a3.func;   // C2276
   // try the following line instead
   // auto pmf1 = &A::func;
}