title: C++, is it possible to call a constructor directly, without new?
body: <p>Can I call constructor explicitly, without using <code>new</code>, if I already have a memory for object?</p>
  
  <pre><code>class Object1{
      char *str;
  public:
      Object1(char*str1){
          str=strdup(str1);
          puts("ctor");
          puts(str);
      }
      ~Object1(){
          puts("dtor");
          puts(str);
          free(str);
      }
  };
  
  Object1 ooo[2] = {
       Object1("I'm the first object"), Object1("I'm the 2nd")
  };
  
  do_smth_useful(ooo);
  ooo[0].~Object1(); // call destructor
  ooo[0].Object1("I'm the 3rd object in place of first"); // ???? - reuse memory
  </code></pre>