Array's destructor deletes the data array of the original, therefore when it deleted copy's data, because they share the same pointer, it also deleted first's data.
Как видно, деструктор Array удаляет массив data, поэтому когда он удаляет данные copy, он также удаляет данные first.