Возможно, вы захотите сделать это для оптимизации (это быстрее не перераспределять все время), но вам нужно повторно -конструировать объект несколько раз. Если вам нужно перераспределять ресурсы, было бы более эффективно выделять больше, чем вам нужно, даже если вы еще не хотите его использовать.
Devex дает хороший пример :
Стандартный C ++ также поддерживает оператор размещения new, который строит объект в предварительно выделенном буфере. Это полезно при создании пула памяти, сборщика мусора или просто в том случае, когда безопасность производительности и исключений является первостепенной (нет опасности сбоя распределения, поскольку память уже выделена, а построение объекта в предварительно выделенном буфере занимает меньше времени) :
blockquote>char *buf = new char[sizeof(string)]; // pre-allocated buffer string *p = new (buf) string("hi"); // placement new string *q = new string("hi"); // ordinary heap allocation
Вы также можете быть уверены, что в определенной части критического кода может отсутствовать отказ в распределении (возможно, вы работаете на кардиостимуляторе, например). В этом случае вы захотите использовать новое место размещения.
Освобождение места размещения new
Вы не должны освобождать все объекты, которые используют буфер памяти. Вместо этого вы должны удалить [] только исходный буфер. Затем вам придется вручную вызвать деструкторов ваших классов вручную. Для хорошего предложения по этому вопросу см. FAQ по Stroustrup: Есть ли «удаление места размещения» ?
Вы можете использовать Global.ASAX для переопределения событий. -> https://forums.asp.net/t/1197922.aspx?Events+in+Global+ASAX