Ошибка компилятора C2355
this: может указываться только в нестатических функциях-членах или инициализаторах нестатических членов данных
Указатель this
действителен только в нестатических функциях-членах или инициализаторах нестатических членов данных. Эта ошибка может возникнуть, когда неправильно квалифицировано определение области класса для функции-члена вне объявления класса. Эта ошибка также может возникнуть, когда указатель this
используется в функции, которая не объявлена в классе.
Чтобы устранить эту проблему, убедитесь, что определение функции-члена соответствует объявлению функции-члена в классе и что она не объявлена как статическая. Для инициализаторов членов данных убедитесь, что член данных не объявлен как статический.
В следующем примере показано возникновение ошибки C2355 и приводятся сведения по ее устранению.
// C2355.cpp
// compile with: /c
class MyClass {};
MyClass *p = this; // C2355
// OK
class MyClass2 {
public:
void Test() {
MyClass2 *p = this;
}
};