Пространства имён
Варианты
Действия

delete expression

Материал из cppreference.com
< cpp‎ | language

 
 
Язык С++
Общие темы
Управление программой
Операторы условного выполнения
Операторы повторения
Операторы перехода
Функции
объявление функции
объявление лямбда-функции
шаблон функции
спецификатор inline
спецификаторы исключений (устарело)
спецификатор noexcept (C++11)
Исключения
Пространства имён
объявление пространства имён
псевдонимы пространства имён
Типы
спецификатор decltype (C++11)
Спецификаторы
cv-спецификаторы
спецификаторы продолжительности хранения
спецификатор constexpr (C++11)
спецификатор auto (C++11)
спецификатор alignas (C++11)
Инициализация
Литералы
Выражения
Утилиты
Типы
typedef-объявление
объявление псевдонима типа (C++11)
атрибуты (C++11)
Приведения типов
неявные преобразования
const_cast-преобразование
static_cast-преобразование
dynamic_cast-преобразование
reinterpret_cast-преобразование
C-подобное и функциональное приведение типов
Выделение памяти
delete-выражение
Классы
Особые свойства классовых функций
Специальные функции-члены
Шаблоны
шаблон класса
шаблон функции
специализация шаблона
упакованные параметры (C++11)
Разное
Ассемблерные вставки
 
и пресс-релизы получено области памяти
Оригинал:
Destructs object(s) previously allocated by the
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Синтаксис

::(необязательно)    delete    expression (1)
::(необязательно)    delete [] expression (2)

[править] Объяснение

Уничтожает объекты, построенные ранее на new выражения и освобождает полученный области памяти. expression должно приводить к значению указателя, который был возвращен предыдущий призыв к new выражение. Для отдельных выделенных объектов первой версии выражении должны быть использованы, в то время как для массивов второй версии должны быть использованы. Существует не удалить выражение освобождая объекты инициализируются размещения новых, освобождение функции и деструктор должны быть явно называется.
Оригинал:
Destructs objects, previously constructed by new expression and releases the obtained memory area. The expression must result in a pointer value that was returned by previous call to the new expression. For single allocated objects the first version of the expression must be used, whereas for arrays the second version must be used. There is no delete expression deallocating objects initialized by placement new, deallocation function and destructor must be explicitly called.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Память освобождается от освобождение функции, либо operator delete (для первой версии выражение) или operator delete[] (для второй версии выражение).
Оригинал:
The memory is deallocated by an освобождение функции, either operator delete (for the first version of the expression) or operator delete[] (for the second version of the expression).
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Имя освобождения функцией, во-первых посмотрел в местной класса типа масштабы и только если поиск неудачен, глобальное пространство имен посмотрел вверх. Если :: присутствует в delete выражения, только глобальное пространство имен посмотрел вверх. Прототип функции должно выглядеть следующим образом:
Оригинал:
The deallocation function's name is firstly looked up in the local class type scope and only if the lookup fails, the global namespace is looked up. If :: is present in the delete expression, only the global namespace is looked up. The prototype of the function must look like the following:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
void operator delete  (void *ptr);
for the first version
void operator delete[](void *ptr);
for the second version
Обе эти функции неявно объявленный в каждой единице трансляции. Кроме того, неявные реализаций, предоставляемых компилятором по умолчанию, если программа явно реализовали их. См. это для получения дополнительной информации.
Оригинал:
Both these functions are implicitly declared in each translation unit. Also, implicit implementations are provided by the compiler by default, unless the program has explicitly implemented them. See это for more information.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Ключевые слова

delete