Compilerfehler C2355
'this': Nur innerhalb nicht statischer Memberfunktionen verfügbar oder nicht statischer Datenmemberinitialisierer verfügbar.
Der this
-Zeiger ist nur für nicht statische Memberfunktionen oder in nicht statischen Datenmemberinitialisierern gültig. Dieser Fehler kann auftreten, wenn der Klassenbereich einer Memberfunktionsdefinition außerhalb der Klasse nicht entsprechend qualifiziert wird. Der Fehler kann auch auftreten, wenn der this
-Zeiger in einer Funktion verwendet wird, die nicht in der Klasse deklariert wird.
Stellen Sie zum Beheben dieses Problems sicher, dass die Memberfunktionsdefinition mit einer Memberfunktionsdeklaration in der Klasse übereinstimmt und dass sie nicht statisch deklariert wird. Stellen Sie für die Datenmemberinitialisierer sicher, dass das Datenmember nicht statisch deklariert wird.
Im folgenden Beispiel wird C2355 generiert und gezeigt, wie Sie diesen Fehler beheben:
// C2355.cpp
// compile with: /c
class MyClass {};
MyClass *p = this; // C2355
// OK
class MyClass2 {
public:
void Test() {
MyClass2 *p = this;
}
};