0

少し疑問があります。私の質問が有効かどうかはわかりませんが、SOに入れています。最初の質問: グローバルまたはクラス レベルで演算子 new および演算子 delete (配列ではなく) をオーバーロードし、次に以下のようなオブジェクトの配列を作成する場合:

A* obj = new A[10];
delete []obj;

次に、その場合、配列に対してオーバーロードしていないのに、演算子 new と delete を呼び出しているのはなぜですか。つまり、以下のようにオーバーロードしていません。

void* operator new[](size_t size){}

2 番目の質問: しかし、上記のように配列の new および delete 演算子をオーバーロードすると、配列構文を持つ演算子が呼び出されます。

最後になりましたが、新しい演算子と削除演算子をまったくオーバーロードしない場合、オブジェクトの配列を作成するときにどちらが呼び出されますか。それは1つの配列構文ですか、それとも通常のものですか。私の質問が明確でない場合はお知らせください。

4

1 に答える 1