Действительный конструктор, вызывающий в управлении памятью - PullRequest
0 голосов
/ 13 июня 2011

Я написал собственную библиотеку памяти, которая помогает мне избежать утечек памяти и избежать проблем фрагментации.Все работает отлично.Основная проблема в том, что он не работает с классами.Когда я вызываю my_alloc (size), я хочу автоматически вызывать конструктор, если он существует.Могу ли я сделать это без перегрузки нового оператора?

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

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

Что не так с перегрузкой new?

1 голос
/ 13 июня 2011

Проверьте вашу реализацию C ++.Некоторые из них (я думаю, что это делает компилятор G ++) вызывают C Runtime malloc, чтобы получить память для new, а затем вызывают конструкторы.

Если у вас есть одна из этих реализаций, все, что вынеобходимо правильно переопределить стандартную библиотеку malloc и свободные функции (прочитайте документацию по внутренним компонентам библиотеки), и C ++ будет работать автоматически.

...