オブジェクトのメモリを特定のメモリ位置に配置するときは、配置new演算子が必要であることがわかります。例: なぜ新しいプレースメントを配置する必要がありますか?
int* MemoryBuffer = malloc(sizeof(int)*10); MyClass* Object = new (MemoryBufer) Myclass;
は、我々は、単に上記のmallocによって割り当てられたメモリを指すようになります。この
MyClass* Object = reinterpret_cast<MyClass*>(MemoryBuffer);
オブジェクトのように行うことはできません。 プレースメントの新しい演算子が必要なのはなぜですか、同じことをするのか、それとも違いがありますか?
あなたはユーザ定義型がコンストラクタを持つことができることを覚えていますか? – AnatolyS
キャストは初期化されていないメモリを指しているだけなので、これは別の方法ではありません。それについて考え続けると、必然的にそれを使用することになります。 –
ありがとう!私は新しい、コンストラクターが呼び出された後のポイントを逃した。 – Akshat