ホームページ >バックエンド開発 >C++ >新しいオペレーターと新しいオペレーター: 違いは何ですか?

新しいオペレーターと新しいオペレーター: 違いは何ですか?

DDD
DDDオリジナル
2024-12-09 12:12:15959ブラウズ

New Operator vs. Operator New: What's the Difference?

新しい演算子と新しい演算子

C でメモリ管理を扱う場合、「新しい演算子」と「演算子」の違いを理解するnew" は重要です。

演算子New

演算子 new は、生のメモリを割り当てる組み込み関数です。概念的には malloc() と似ており、割り当てられたメモリへの void ポインタを返します。 malloc() とは異なり、演算子 new は明示的なメモリ割り当てリクエストで直接呼び出すことができます:

void *x = operator new(100);

さらに、演算子 new はグローバルに、または特定のクラスに対してオーバーロードして、メモリ割り当てをカスタマイズできます。これは通常、特殊なケースを処理したり、カスタム メモリ管理戦略を実装したりするために行われます。

新しい演算子

新しい演算子は、指定されたタイプのオブジェクトを動的に作成するために使用されます。無料ストア。演算子 new とクラスのコンストラクターを組み合わせて、次のアクションを実行します。

  1. 演算子 new を使用してメモリを割り当てます。
  2. オブジェクトのコンストラクターを呼び出して初期化します。
  3. 新しく作成されたオブジェクトへのポインタを返します。

オブジェクトを作成するには、新しい演算子:

my_class *x = new my_class(0);

主な違い

新しい演算子:

  • 生のメモリのみを割り当てます。
  • は可能直接呼び出すかオーバーロードすることができます。
  • void を返しますpointer.

New 演算子:

  • 演算子 new を使用してメモリを割り当てます。
  • コンストラクターを呼び出してオブジェクトを作成します。
  • 戻り値インスタンス化されたオブジェクトへのポインタ。

以上が新しいオペレーターと新しいオペレーター: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。