Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
"operator" : Unzulässiger Vorgang für gebundenen Memberfunktionsausdruck
Der Compiler hat ein Problem mit der Syntax gefunden, mit der ein Zeiger-zu-Member erstellt wurde.
Hinweise
Der Fehler C2276 wird häufig verursacht, wenn Sie versuchen, einen Zeiger auf Member zu erstellen, indem Sie eine Instanzvariable verwenden, um das Element anstelle eines Klassentyps zu qualifizieren. Möglicherweise wird dieser Fehler auch angezeigt, wenn Sie versuchen, eine Memberfunktion mithilfe der falschen Syntax aufzurufen.
Beispiel
In diesem Beispiel werden verschiedene Möglichkeiten gezeigt, wie C2276 auftreten kann und wie Sie diese beheben:
// 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;
}