Kompilatorfel C2228

till vänster om ".identifier" måste ha klass/struct/union

Anmärkningar

Operanden till vänster om perioden (.) är inte en klass, struktur eller union.

Example

I följande exempel genereras C2228:

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

Det här felet visas också om du använder felaktig syntax när du använder hanterade tillägg. I andra Visual Studio-språk kan du använda punktoperatorn för att komma åt en medlem i en hanterad klass, men en pekare till objektet i C++ innebär att du måste använda operatorn -> för att få åtkomst till medlemmen:

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

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