OK je confirme que votre "caviardage" respecte les règles du forum.
1) Concernant votre problème, d'après les directives includes, vous avez créé deux modules qui dépendent l'un de l'autre. ça n'est pas interdit mais c'est une sorte de warning d'un problème de conception. En tout cas c'est la cause de votre problème de compilation comme on va le voir au point 3.
2) Tout d'abord ça serait franchement plus clair en renommant classgame.h en player.h puisqu'il exporte la déclaration de la classe Player. Je ne comprends pas ce choix de nom.
3) La dépendance mutuelle entre 2 modules cause une erreur de compilation quand on oubli de prédéclarer les types. Mettons-nous à la place du préprocesseur pour comprendre le problème:
classgame.h inclut game.h ( qui inclut classgame.h mais cette inclusion est ignorée grâce au header guard -> voir cours)
Conséquences: dans le fichier game.h qui est inclus dans classgame.h se trouve le vector de Player qui produit l'erreur de compilation
-> le compilateur rencontre un vector de Player AVANT même d'avoir vu la déclaration de la classe Player -> type inconnu
Solution : faire précéder la directive include d'une prédéclaration de la classe dans chacun des fichiers en-tête. dans votre cas:
Dans classgame.h:
.....
class Player;
#include "game.h"
....
et vice-versa dans game.h