When you compile Mesh.cpp
, it includes Mesh.h
, which includes MeshList.h
, which starts to include Mesh.h
but stops early because _MESH_H
is now defined. Then (back in MeshList.h
) there’s a reference to Mesh
— but that hasn’t been declared yet. Hence, e.g., your C2143 error.