По последним данным, на рынке продается по крайней мере 2 768 942 книги о С++, не говоря уже о всевозможных курсах, обучающих программах, журналах и семинарах с коктейлями. И все же в этом изобилии наблюдается удручающее однообразие.
Перегрузка операторов new и delete как функций класса несколько повышает ваш контроль над происходящим. Изменения относятся только к данному классу и его производным классам, так что побочные эффекты обычно оказываются минимальными. Такой вариант работает лучше всего при выделении нестандартной схемы управления памятью в отдельный класс и его последующем подключении средствами множественного наследования. Для некоторых схем управления памятью такая возможность исключается, но это уже трудности архитектора - показать, почему ее не следует реализовывать на базе подключаемых классов.
Если управление памятью реализовано в классе и вы можете создать от него производный класс, деструктор следует сделать виртуальным, чтобы тот же класс мог и освобождать память. Производные классы не должны перегружать перегруженные версии.
Просматривать полку книг о С++ в книжном магазине ничуть не интереснее, чем литературу по бухгалтерии. В сущности, все книги пересказывают одно и то же и отличаются разве что по весу и количеству цветов в диаграммах и таблицах.