title: std::vector calling destructor multiple times during push_back?
body: <p>I'm pushing objects class tipo to a vector, when I push the first one the constructor get's called (as it should) and the destructor is called immediatelly (which I don't think should happen). Then when I push the next object the constructor is called once and the destructor is called twice, then on the third three times and so on.</p>
  
  <p>It seems that the destructor is called more times every time I push something to the vector.</p>
  
  <p>This is my class:</p>
  
  <pre><code>class Item
  {
  protected:
  ...
  public:
      Item();
      Item(char * no, int hit, int ve, char * pathTilesheet, int an, int al, bool inv, bool vol, bool fan, int mh = NULL);
      ~Item();
  };
  
  
  Item::Item(char *no, int hi, int ve, char *pathTilesheet, int an, int al, bool inv, bool vol, bool fan, int mh){    
      // CARGAR SDL
      tileSheet = load_image(pathTilesheet);
      tileSheetEspejo = flip_surface(tileSheet, FLIP_HORIZONTAL);
  }
  </code></pre>
  
  <p>This is what is happening:</p>
  
  <pre><code>std::vector&lt;Item&gt; vecItems;
  vecItems.push_back(Item("life",4,0,"assets/imagenes/hp.png", 8, 8, false, false, false));
  // HERE THE CONSTRUCTOR AND THE DESTRUCTOR ARE CALLED
  vecItems.push_back(Item("lifeXL",8,0,"assets/imagenes/hp-xl.png", 16, 16, false, false, false));
  // HERE THE CONSTRUCTOR IS CALLED ONCE AND THE DESTRUCTOR TWICE
  vecItems.push_back(Item("blast 1",-4,14,"assets/imagenes/bola.png", 8, 8, false, true, false));
  // HERE THE CONSTRUCTOR IS CALLED ONCE AND THE DESTRUCTOR MULTIPLE TIMES
  </code></pre>
  
  <p>Am I doing something wrong? Why could this be happening?</p>