新しい演算子のオーバーロードについて理解できない点があります。クラス MyClass がまだ MyClass.h MyClass.cpp と main.cpp ファイルがあるとします。
//MyClass.h
class MyClass {
public:
//Some member functions
void* operator new (size_t size);
void operator delete (void* ptr);
//...
};
//MyClass.cpp
void* MyClass::operator new(size_t size) {
return malloc(size);
}
void MyClass::operator delete(void* ptr) {
free(ptr);
}
//main.cpp
//Include files
//...
int main() {
MyClass* cPtr = new MyClass();
delete cPtr
}
それぞれ。このプログラムは問題なく動作しています。ただし、理解できないのは、定義に「size_t size」のような関数パラメーターがあるのに、パラメーターなしで新しい演算子を呼び出すことができるのはなぜですか。ここで私が見逃している点はありますか? ありがとう。