Teilen über


Compilerfehler C2228

Der linke Teil von „.identifier“ muss eine Klasse/Struktur/Union aufweisen.

Bemerkungen

Der Operand links vom Punkt (.) ist keine Klasse, Struktur oder Vereinigung.

Example

Im folgenden Beispiel wird C2228 generiert:

// C2228.cpp
int i;
struct S {
public:
    int member;
} s, *ps = &s;

int main() {
   i.member = 0;   // C2228 i is not a class type
   ps.member = 0;  // C2228 ps is a pointer to a structure

   s.member = 0;   // s is a structure type
   ps->member = 0; // ps points to a structure S
}

Dieser Fehler wird auch angezeigt, wenn Sie bei der Verwendung von Managed Extensions fehlerhafte Syntax verwenden. In anderen Visual Studio-Sprachen können Sie den Punktoperator für den Zugriff auf ein Element einer verwalteten Klasse verwenden, ein Zeiger auf das Objekt in C++ bedeutet, dass Sie den Operator -> verwenden müssen, um auf das Element zuzugreifen:

Falsch: String * myString = checkedListBox1->CheckedItems->Item[0].ToString();

Richtig: String * myString = checkedListBox1->CheckedItems->Item[0]->ToString();