Операция delete уничтожает объект, созданный с помощью new. выражение-освобождения:::opt delete выражение-приведения::opt delete [] выражение-приведения Результат имеет тип void. Операндом delete должен быть указатель,который возвращает new. Эффект применения операции delete к указателю,который не получен в результате операции new без заданияпараметры-new, считается неопределенным и обычно приводит к опаснымпоследствиям. Однако гарантируется, что удаление по указателю снулевым значением безопасно. Результат попытки доступа к удаленному объекту неопределен, аудаление объекта может изменить его значение. Более того, есливыражение, задающее объект, является изменяемым адресом, егозначение после удаления неопределено. Нельзя удалять указатель на константу. Операция delete вызывает деструктор (если он есть $$12.4)для объекта, на который настроен ее операнд. Для освобождения памяти, отведенной под указываемый объект,операция delete вызывает функцию operator delete ($$R.12.5).Для объектов, не имеющих тип класс (в том числе и для массивовклассов), используется глобальная функция::operator delete().Для объекта типа класс T вызывается функция T::operator delete(),если она есть (используя обычные правила просмотра при поискечленов класса и производных от него классов, $$R.10.1.1), впротивном случае вызывается глобальная функция::operator delete().Обращение::delete гарантирует, что будет вызываться глобальнаяфункция::operator delete(), даже если существует T::operator delete().Для удаления массивов используется обращение вида delete [ ] выражение-приведения Здесь выражение должно указывать на массив. Если есть деструкторы,они будут вызываться для удаления указанных объектов. Результат удаления массива с помощью простого обращения deleteнеопределен, так же как и удаление одиночного объекта с помощьюdelete [].