La soluzione "classica" è separare definizione della classe da quella dei metodi (lasciandoli però nell'header, dato che sono template); nel file sorgente, l'ordine sarebbe:

- forward declaration di CEffect e CMesh;
- definizione della classe CRenderer;
- definizione completa di CEffect e CMesh;
- definizione dei metodi di CRenderer.
- forward declaration di CEffect e CMesh; //ok
- definizione della classe CRenderer;//ok
- definizione completa di CEffect e CMesh;//non capisco
- definizione dei metodi di CRenderer. // ok

- definizione completa di CEffect e CMesh;
non capisco come faccio a fare una definizione completa di CEffect e CMesh? in una classe in cui non posso includere l'header delle due classi per problema riferimento circolare?
e posso fare questa definizione completa grazie alle forward declaration?
e per la lista come posso fare?
insomma non ho capito bene, scusa.

mi puoi buttare giu due righe quando hai tempo?

grazie.