В соответствии со стандартами C ++, когда у вас есть класс с динамическим распределением памяти, и внутри конструктора возникает исключение, память должна быть освобождена, чтобы избежать утечек памяти.
Здесь вы определили свой новый оператор как общедоступный, но удаление является частным.
Итак, компилятор говорит вам, что дает мне доступ к оператору удаления, чтобы я мог
предотвратить утечку памяти, если в конструкторе возникло исключение.
Если вы не определили свой оператор удаления, компилятор также выдаст ошибку и заставит вас ее определить.