Вопросы с тегом 'delete-operator'

На языке программирования С++ оператор delete вызывает деструктор данного аргумента и возвращает память, выделенную новой, обратно в кучу.
24

Удаление элементов массива в JavaScript - удаление vs-сращивания

В чем разница между использованием оператора delete элемента массива в отличие от использования метод Array.splice? Например: myArray = ['a', 'b', 'c', 'd']; delete myArray[1]; // or myArray.splice (1, 1); Почему даже метод splice, если я могу...
01 февр. '09 в 11:11
7

Безопасно ли удалить указатель NULL?

Можно ли удалить указатель NULL? И это хороший стиль кодирования?
16 нояб. '10 в 2:33
9

Значение = delete после объявления функции

class my_class { ... my_class(my_class const &) = delete; ... }; Что означает = delete в этом контексте? Существуют ли другие "модификаторы" (кроме = 0 и = delete)?
01 апр. '11 в 13:14
10

Удалить это разрешено?

Разрешено ли delete this;, если оператор delete является последним оператором, который будет выполняться в этом экземпляре класса? Конечно, я уверен, что объект, представленный this -pointer, new ly-created. Я думаю о чем-то вроде этого: void Some...
30 июн. '10 в 15:45
11

Вызывает ли удаление указатель на подкласс деструктор базового класса?

У меня есть class A который использует выделение кучи памяти для одного из своих полей. Класс A создается и сохраняется как поле указателя в другом классе (class B Когда я закончу с объектом класса B, я вызываю delete, который, как я полагаю, вызыв...
24 мар. '09 в 14:30
15

Как удалить [] знает массив?

Хорошо, я думаю, мы все согласны с тем, что происходит со следующим кодом: undefined, в зависимости от того, что передано, void deleteForMe(int* pointer) { delete[] pointer; } Указатель может быть разным, и поэтому выполнение безусловного d...
01 апр. '09 в 1:22
6

Что делает Visual Studio с удаленным указателем и почему?

Книга С++, которую я читал, гласит, что при удалении указателя с помощью оператора delete память в том месте, где он указывает, "освобождается", и ее можно перезаписать. Он также указывает, что указатель будет продолжать указывать на одно и то же ме...
27 окт. '15 в 17:19
12

Почему не удаляет указатель на NULL?

Я всегда задавался вопросом, почему автоматическая настройка указателя на NULL после удаления не является частью стандарта. Если об этом позаботятся, многие из сбоев из-за неверного указателя не возникнут. Но, сказав, что я могу придумать пару причин...
01 апр. '09 в 7:48
5

Удаление указателя на const (T const *)

У меня есть основной вопрос относительно указателей const. Мне не разрешено вызывать любые не-const-функции-члены, используя указатель const. Тем не менее, я могу сделать это с помощью указателя const: delete p; Это вызовет деструктор класса, кото...
16 апр. '09 в 8:18
5

delete vs delete [] в С++

В чем разница между операторами delete и delete[] в С++?
11 мар. '10 в 14:32
7

Почему бы заменить операторы нового и удаления по умолчанию?

Почему должен заменить оператор по умолчанию new и delete на пользовательские операторы new и delete? Это продолжение Перегрузка новых и удаление в чрезвычайно освещающем FAQ на С++: Перегрузка оператора. Следующее сообщение для этого FAQ: Как...
22 авг. '11 в 15:04
2

Можно ли удалить nullptr в С++ 0x?

В c++03 довольно ясно, что удаление нулевого указателя не влияет. В самом деле, в §5.3.5/2 явно указано, что: В любой альтернативе, если значение операнда удаления является нулевым указателем, операция не имеет эффекта. Однако в текущем проекте ...
18 июл. '11 в 10:09
4

Как я должен писать стандартные стандартные и удаленные операторы ISO С++ Standard?

Как мне написать стандартные стандартные пользовательские операторы new и delete ISO С++? Это продолжение Перегрузка новых и удаление в чрезвычайно освещающем FAQ на С++, Перегрузка оператора, и последующие действия, Зачем заменять операторы по ум...
25 авг. '11 в 16:43
4

Ну, как работает пользовательское деблокирование std:: unique_ptr?

В соответствии с N3290 std::unique_ptr принимает аргумент deleter в своем конструкторе. Однако я не могу получить это для работы с Visual С++ 10.0 или MinGW g++ 4.4.1 в Windows, а также с g++ 4.6.1 в Ubuntu. Поэтому я опасаюсь, что мое понимание э...
25 нояб. '11 в 21:39
4

Как вы realloc на С++?

Как я могу realloc на С++? Кажется, что отсутствует язык - есть new и delete, но не resize! Мне это нужно, потому что, когда моя программа читает больше данных, мне нужно перераспределить буфер для его хранения. Я не думаю, что delete старый указа...
14 авг. '10 в 10:39