Originariamente inviato da ariok
codice:
A *Ptr = new(B) A ("Prova");
E' il placement new che viene usato dagli allocatori in genere, ma può essere ridefinito anche in una classe.

Significa "costruisci l'oggetto A nella locazione puntata da B.

Quando si costruisce un oggetto con l'operatore new, sono due le operazioni che vengono fatte:
1) si alloca memoria
2) si invoca in costruttore.

Ovviamente quando si distrugge vengono compiute le seguenti operazioni

1) si invoca il distruttore
2) si rilascia la memoria.

con questo sistema di risparmia di allocare ogni volta memoria.

Un banale esempio
codice:
	A* t = static_cast<A*>(::operator new(sizeof(A)));
	new(t) A("prova");
        ...
	t->A::~A();

	new(t) A("ciao");
	...
	t->A::~A();
	::operator delete(t);