Похож, что operator new
и operator new[]
имеют точно такую же подпись:
void* operator new( size_t size );
void* operator new[]( size_t size );
и сделать то же самое: либо верните указатель на достаточно большой блок необработанной (не инициализированной в любом случае) памяти, либо выбросьте исключение.
Также operator new
вызывается внутри, когда я создаю объект с new
и operator new[]
- при создании массива объектов с new[]
. Тем не менее, вышеупомянутые две специальные функции вызываются С++ внутренне точно таким же образом, и я не вижу, как два вызова могут иметь разные значения.
Какова цель иметь две разные функции с точно такими же сигнатурами и точно такое же поведение?