   Allocating 2D Array of Objects
  I'm trying to allocate a 2d array of Tile objects.My code for doing so looks like this:Tile** _theGrid;void Grid::createGrid(){  _theGrid = new Tile*[_width];  for(int i = 0; i < _width; i++)    { _theGrid = new Tile[_height];    }}Which should (shouldn't it?) create a 2D array of Tile pointers?The error I'm getting isGrid.cpp: In member function ‘void Grid::createGrid()’:Grid.cpp:30: error: no matching function for call to ‘Tile::Tile()’Tile.h:13: note: candidates are: Tile::Tile(float, float, float, int)Tile.h:10: note:  Tile::Tile(float, float, float)Tile.h:8: note:  Tile::Tile(const Tile&)which is obviously because I haven't correctly called the Tile constructor.I guess I'm just confused in general about creating 2D arrays of pointers to objects.Thanks for any help.   
  Long story short, you need to give your Tile class a default constructor.   ;  Or use a container that separates construction from allocation, such as std::vector or boost::multi_array.   ;  Thanks.  That clears that up.   