Что касается обработки ресурсов, вам обязательно нужно перераспределить ресурсы в деструкторе, чтобы освободить ресурсы, когда ваш контейнерный класс уничтожен. Если вы хотите изменить размер содержащегося массива, вы обрабатываете его в функции ResizeArray, поэтому ниже приведено базовое предложение с поясняющими комментариями:
void ResizeArray(int newSize)
{
int *newArray = new int[newSize];
if (nullptr != newArray) { // we take action only if allocation was successful
for(int x=0;x<sizeInClass;x++)
{
newArray[x]=arrayy[x];
}
delete [] arrayy; // good, here you delete/free resources allocate previously for an old array
arrayy = newArray; // good, you redirect member ptr to newly allocated memory
/* delete [] newArray; ups, we have member ptr point to this location
and we cannot delete it, after this, accessing it would be UB,
beside in dtor we would have double, second deletion */
sizeInClass = newSize;
}
}
С вашим деструктором все в порядке.
Возможно,дальнейшие улучшения в вашем коде, но это связано с вашим вопросом.