Delen via


Compilerfout C2228

links van '.identifier' moet een klasse/struct/union hebben

Opmerkingen

De operand links van de periode (.) is geen klasse, structuur of samenvoeging.

Example

In het volgende voorbeeld wordt C2228 gegenereerd:

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

Deze fout wordt ook weergegeven als u een onjuiste syntaxis gebruikt bij het gebruik van beheerde extensies. Terwijl u in andere Visual Studio-talen de puntoperator kunt gebruiken om toegang te krijgen tot een lid van een beheerde klasse, betekent een aanwijzer naar het object in C++ dat u de operator -> moet gebruiken om toegang te krijgen tot het lid:

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

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