Отличается ли удаление ptr от оператора удаления(ptr) только тем, что удаление вызывает деструктор ptr? Или, другими словами, вызывает ли delete ptr сначала деструктор ptr, а затем оператор delete(ptr) для освобождения...
Предположим, у меня есть структура с двумя указателями, каждый из которых указывает на объект, имеющий реализованный деструктор. Также предположим, что заголовок указывает на структуру Listnode, имеющую ненулевое значение *student ...
Я преобразовываю проект C# в C++, и у меня возник вопрос об удалении объектов после использования. В C# сборщик мусора, конечно, заботится об удалении объектов, но в C++ это нужно делать явно с помощью команды удаления...
Вопрос в теме. Я хочу написать какую-нибудь универсальную шаблонную функцию для безопасного удаления объектов и интересно, можно ли использовать что-то вроде этого:template< class T > void SafeDelete(...
Я обнаружил классическую ошибку несовпадения new / delete в нашем кодовая база выглядит следующим образом: char * foo = new char [10]; // что-то делаем delete foo; // вместо delete [] foo; Насколько это серьезно? Неужели ...
Прямо сейчас я хочу увеличить размер массива с помощью функция. #include
используя пространство имен std; void IncreaseArraySize (int * addr) {int * temp = new int [20]; for (int i = 0; i & ...
Примите во внимание: удалить новый std :: string [2];
удалить [] новый std :: string; Всем известно, что первое - это ошибка. Если бы второй не был ошибкой, нам не понадобились бы два разных оператора. Теперь рассмотрим: std ...
Согласно N3290 std :: unique_ptr принимает аргумент удаления в своем конструкторе. Однако я не могу заставить это работать с Visual C ++ 10.0 или MinGW g ++ 4.4.1 в Windows или с g ++ 4.6.1 в Ubuntu. ...
Интересно, что произойдет, если я попытаюсь удалить указатель, который уже удален или, возможно, не был выделен? Я прочитал две вещи: во-первых, этот оператор удаления выполнит некоторые проверки ...
int * Array; Array = new int [10]; delete [] Array; Удаление знает количество выделенной памяти. Я погуглил, что он сохраняет его в памяти, но это зависит от компилятора. для использования получить это ...
Я нашел следующий фрагмент в стандарте C ++ 03 в разделе 5.3.5 [expr.delete] p3: В первом варианте (удалить объект) , если статический тип удаляемого объекта отличается от его ...
Почему в C ++ нет удаления размещения, которое напрямую соответствует новому размещению, то есть вызывает деструктор и вызывает соответствующий оператор удаления размещения? Например: MyType * p = new (arena) MyType; ...
В моей программе на C ++ я создаю объекты в одной функции, используя new. Эти объекты вставляются в набор. Когда я хочу удалить объекты из набора, я использую итератор в цикле for. Когда я удаляю ...
I've written a program that allocates a new object of the class T like this: T* obj = new T(tid); where tid is an int Somewhere else in my code, I'm trying to release the object I've allocated, ...
Рассмотрим следующий код: typedef SomeType type_t [2];
SomeType * arr1 = новый type_t; // новый или новый [] ???
type_t * arr2 = новый type_t [3]; // новый или новый [] ??? Согласно стандарту, какая версия нового будет ...
Если я удалю указатель, например, следующим образом: delete myPointer; И после этого не присвоил 0 указателю следующим образом: myPointer = 0; // пропустил это Будет ли myPointer указывать на другой ...
Следующий код, скомпилированный с помощью MSVC9.0, запускается и выводит Деструктор четыре раза, что логично. #include
класс SomeClass
{
public: void CommitSuicide () {удалите это; ...
Мне нужно использовать числа XOR от 1 до N, существует ли для этого прямая формула? Например, если N = 6, то 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 = 7 Я хочу сделать это без использования какого-либо цикла, поэтому мне нужна формула O (1) (если есть)
Это появилось как один из комментариев при проверке кода. Стоит ли проверять NULL перед вызовом delete для любого объекта? Я понимаю, что оператор удаления проверяет наличие NULL внутренне и ...
Я всегда думал ... переопределение означает повторную реализацию функции (той же сигнатуры) в базовом классе, тогда как
перегрузка означает реализацию функции с тем же именем, но другой подписью ... и получил ...
Следует ли удалять до или после стирания. Насколько я понимаю, оба в порядке. Это правильно? Кроме того, есть ли случай, когда мы не хотим удалять элемент во время его стирания? Я считаю, что должно быть ...
Почему есть delete []? Насколько я понимаю, для массивов он ведет себя иначе. Однако почему он существует на самом деле? В C есть только free и нет free_array. Также в синтаксисе единственная разница ...
В c ++ 03 совершенно очевидно, что удаление нулевого указателя не имеет никакого эффекта. В самом деле, в §5.3.5 / 2 явно указано, что: В любом варианте, если значение операнда удаления является нулем ...
класс my_class
{... my_class (my_class const &) = удалить; ...
}; Что означает = удалить в этом контексте? Существуют ли другие «модификаторы» (кроме = 0 и = delete)?