Cari signori, sono qui a chiedere un vostro parere per aiutarmi a comprendere il seguente codice.

codice:
#pragma once 

#include  <vector>
using namespace  std;

#include  "Vector.h"
#include  "Matrix.h"
#include  "FileLoader.h"

class  CObject3D; 

class  CModel : public  CFileLoader
{
public: 
	// ... 

	CObject3D* GetObject(int  ObjectNumber) const  
	{	
		return  mObjects[ObjectNumber];
	}

private: 
	vector <CObject3D*> mObjects;

	// ... 
};
Per quale motivo il programmatore ha scelto di dichiarare la classe CObject3D (subito dopo la sezione include files) dal momento che la classe è già dichiarata e definita nel file Object3D.h ?
Ovvero, perché non ha semplicemente scelto di includere il file dell'iterfaccia della classe?

Grazie per l'attenzione.