Предположим, мне нужно перегрузить глобальный :: operator new ()
для хранения дополнительных данных с каждым выделенным объектом . Таким образом, в основном это будет работать следующим образом:
:: operator new ()
он будет принимать размер переданного объекта и добавлять размер дополнительных данных :: operator delete ()
сделает то же самое в обратном порядке - сдвинет указатель, получит доступ к дополнительным данным, освободит память.
Теперь вопрос как мне выделить память ? Конечно, я могу вызвать malloc ()
или какую-нибудь платформенно-зависимую функцию (как это обычно делается). Но обычно, когда мне нужно выделить необработанную память в C ++, я вызываю :: operator new ()
. Могу ли я вызвать исходный :: operator new ()
для выделения памяти из моего перегруженного глобального :: operator new ()
?