//terrainmap.h #include //forward declaration class HeightMap; struct Vertex { D3DXVECTOR3 pos,n; }; struct Triangle { Vertex* p0,p1,p2; D3DXVECTOR3 n; }; struct Cell { Triangle t0,t1; }; class TerrainMap { public: TerrainMap(unsigned int numVerticesWide, unsigned int numVerticesTall); ... } //terrainmap.cpp #include "TerrainMap.h" #include "HeightMap.h" TerrainMap::TerrainMap(unsigned int numVerticesWide, unsigned int numVerticesTall) { m_numVerticesWide = numVerticesWide; m_numVerticesTall = numVerticesTall; m_vertices = new (Vertex*)[m_numVerticesTall]; ... }