Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
слева от ".identifier" должен быть указан класс, структура или объединение
Замечания
Операнд слева от периода (.) не является классом, структурой или объединением.
Example
В следующем примере создается 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
}
Эта ошибка также возникает из-за неправильного синтаксиса при использовании управляемых расширений. В то время как в других языках Visual Studio можно использовать оператор dot для доступа к члену управляемого класса, указатель на объект в C++ означает, что необходимо использовать оператор -> для доступа к члену:
Неправильно: String * myString = checkedListBox1->CheckedItems->Item[0].ToString();
Правильно: String * myString = checkedListBox1->CheckedItems->Item[0]->ToString();