If I have a dynamically allocated array of objects with destructors defined, and I use delete[] on the array, will all the destructors be called?