Kompilatorfel C2276

Operator: ogiltig åtgärd för bundet medlemsfunktionsuttryck

Anmärkningar

Kompilatorn hittade ett problem med syntaxen som används för att skapa en pekare till medlem.

Fel C2276 uppstår ofta när du försöker skapa en pekare till medlem med hjälp av en instansvariabel för att kvalificera medlemmen i stället för en klasstyp. Du kan också se det här felet om du försöker anropa en medlemsfunktion med fel syntax.

Example

Det här exemplet visar flera sätt som C2276 kan inträffa på och hur du åtgärdar dem:

// 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;
}