Я встретился с некоторыми кодами, как показано ниже.Странное использование ключевого слова C++ для нового
char *buffer = new char[sizeof(PoolThread) * numThreads];
m_threads = reinterpret_cast<PoolThread*>(buffer);
for (int i = 0; i < numThreads; i++)
{
new (buffer)PoolThread(*this);
buffer += sizeof(PoolThread);
}
Я думаю new
здесь для инициализации пустого пространства памяти, на которое указывает m_threads
к реальному объекту (от PoolThread
класса)
Я гугле, но только нашли Infos от использования new
как это:
pointer = new somthing[number];
Я надеюсь, что больше информации о использовании new
в моем верхнем примере кода. И используется ли это из стандарта C++?
См. [«Что используется для« размещения нового »? »] (http://stackoverflow.com/questions/222557/what-uses-are-there-for-placement-new). – kay
Да, я задаю двойной вопрос. Я выберу ответ гейта через 7 минут –
Да, мой вопрос повторяется с этим. –