Используя memset
, вы устанавливаете все байты этого объекта в 0. Обычно это эквивалентно установке id
в 0, потому что память объекта - это память его членов (не считая vtables, padding)., так далее).Но не делайте этого в любом случае.
Один из способов сделать это - использовать new
и иметь массив указателей.
MyObject* myArray[6];
int main ( )
{
for( int i = 0; i < 6; i++ )
{
myArray[i] = new MyObject;
myArray[i]->setId(i);
myArray[i]->showId();
}
}
Затем отобразить их все:
for (int i = 0; i < 6; i++) {
cout << "myArray[" << i << "] = ";
if (myArray[i])
myArray[i]->showId();
else
cout << "nothing" << endl;
}
Затем, когда вы хотите удалить объект, delete
он и устанавливает его указатель на NULL
:
delete myArray
myArray[3] = NULL;
Затем, когда вы что-нибудь делаете с одним из объектов в myArray
, вы должны проверить, является ли это NULL
, чтобы видеть, является ли это действительным объектом.