Вызов конструктора / деструктора объекта с помощью пользовательского распределителя

Я изучал пользовательские распределители и довольно часто вижу, что они используют какую-то функцию для выделения памяти. В целях тестирования и дальнейшего самообразования я попытался сделать & quot; простым & quot; пример этого. Тем не менее, есть одна фундаментальная вещь, которую я понимаю о том, как это сделать. Одно из ключевых отличий вmalloc противnew это то, что с новым вызывается конструктор. Что если бы я хотел написать свой собственный распределитель, который по сути заменялnewКак бы я получить конструктор для вызова при использованииmalloc?

Я понимаю, что на занятиях могу перегружатьnew а такжеdelete для класса, так что я полагаю, большая часть вопроса в том, какnew Вызов конструктора объектов во время выделения? Точно так же меня интересует, какdelete звонит деструктору.

Я создал образец тестового кода, который я надеялся получитьSomeClass конструктор вызывается во время выделения, но я не вижу как.

<code>#include <malloc.h>

void* SomeAllocationFunction(size_t size) {
    return malloc(size);
}

class SomeClass
{
public:
    SomeClass() {
        int con = 1000;
    }

    ~SomeClass() {
        int des = 80;
    }
};

int main(void){
    SomeClass* t = (SomeClass*)SomeAllocationFunction(sizeof(SomeClass));
    return 0;
}
</code>

(Как примечание, я знаю, что могу просто использоватьnew, Тем не менее, в целях обучения я пытаюсь создать собственный распределитель, который не просто вызываетnew или жеplacement new).

Ответы на вопрос(3)

Ваш ответ на вопрос