Выражение
A new
вызовет функцию распределения (operator new
) с правильным размером для строящегося объекта. Вот для чего size_t
параметр для operator new
.
Тем не менее, конкретная реализация operator new
в этом примере может справиться только с запросами распределения одинакового размера. Если производный класс не переопределит operator new
, эта реализация из operator new
будет вызвана с размером, с которым она не может справиться (иначе "неправильно").
В общем, вполне возможно написать operator new
для класса, который может обрабатывать запросы выделения для производных классов.