Every time you call new[], you have to call delete[] on the pointer to deallocate. Every time you call new, you have to call delete.
In your case, you call new twice. array[1] contains a pointer to a class allocated with new, so it must be deallocated with delete. And array is a pointer to an array allocated with new[], so it must be freed with delete[].
Of course, you could have saved yourself this headache by simple declaring the array like this:
Class array[8];
array[1] = Class(1,2);
no dynamic memory allocation means no need to call delete.
Or using std::vector:
std::vector<Class> array(8);
array[1] = Class(1,2);
Classis not a keyword;classis. Names are case sensitive in C++.classisn't a name, it's a keyword... sigh)