You can’t change "new operator" behavior, but you can overload "operator
new", it just allocate memory block for "new operator".
You can only want to allocate memory, call operator new, no ctor will be
called.
When do you need to overload operator new, if you need to dynamically
allocated a lot of small object, It’s better to overload operator new in your
small object class. Detail can be seen in effective C++ and modern design
c++ chapter 4.
If you don’t overload operator new in a derived class, global(default) operate
new will still call base operator new which you have overload. So In your
base class, It’s better to write