「新しい演算子」と「新しい演算子」の区別は混乱を招く可能性があります。区別を明確にするために、詳細な説明を次に示します。
Operator new は、ヒープから初期化されていないメモリを割り当てる標準 C 関数です。これは malloc() 関数と同様に動作しますが、C に固有です。
演算子 new を直接呼び出して生メモリを予約できます。
char *x = static_cast<char *>(operator new(100));
演算子 new のオーバーロードが可能であり、次のことが可能です。特定のクラスまたはグローバルのメモリ割り当てをカスタマイズします。
「new 演算子」は、C でオブジェクトを作成するために使用される主なメソッドです。これは、演算子 new とクラス コンストラクターの機能を組み合わせたものです。
new 演算子を使用する場合:
my_class *x = new my_class(0);
まず、演算子 new を呼び出して、オブジェクト my_class に生のメモリを割り当てます。その後、コンストラクター my_class(0) を呼び出して、そのメモリ内のオブジェクトを初期化します。 my_class に埋め込みクラス オブジェクトまたは基本クラス オブジェクトが含まれている場合、それらのコンストラクターも呼び出されます。
「new 演算子」と「演算子 new」の基本的な違いは、その動作にあります。
要約すると、演算子 new は下位レベルです。生のメモリを割り当てるための関数ですが、「new 演算子」はメモリの割り当てとオブジェクトの初期化をシームレスに処理する高レベルの抽象化です。
以上がC の「new」演算子と「operator new」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。