Das Programm erzeugt eine Instanz der Klasse A in einem bereits bestehenden Speicherbereich, benutzt es und baut das Objekt anschließend wieder ab.
Als Hinweis: Grundsätzlich sollte auch Placement-Delete implementiert werden ( operator delete( void *, void * ) ), um Fehlern zu begegnen, die durch eine Exception im Konstruktor entstehen.
Code: Alles auswählen
#include <stdio.h>
#include <new>
char Buffer[ 5000 ];
class A
{
  int const a;
public:
  A( int value ) : a( value ) 
  { 
    printf( "Constructing at %x\n", (int) this ); 
  }
  ~A() 
  { 
    printf( "Destructing at %x\n", (int) this ); 
  }
  void Output()
  {
    printf( "Value is %d\n", a ); 
  }
};
int main( void )
{
  printf( "Buffer is at %x\n", (int) Buffer );
  A * temp = new (Buffer) A(1);
  temp->Output();
  temp->~A();
  return 0;
}



