When we overload new operator of a class, we declare the function as a member function. For eg:
class OpNew {
public:
OpNew() { cout << \"OpNew::Op
An operator new() or operator new[]() for a class is always a static class member, even if it is not declared with the keyword static.
What the C++ standard says (draft n3242), in section [class.free]
:
Any allocation function for a class
T
is a static member (even if not explicitly declaredstatic
).