web-dev-qa-db-fra.com

Classe de nom de type inconnue

J'ai les fichiers d'en-tête suivants:

https://Gist.github.com/wemakeweb/550144 et le compilateur signale toujours "Classe de nom de type inconnu" . J'ai inclus la déclaration à terme, pour briser la circulaire, y compris, où je pense que je dois le faire. Qu'est-ce que j'ai oublié?

Edit : je mets tout cela dans un fichier d'en-tête, et le compilateur rapporte toujours "attendu; après le déclarant de niveau supérieur"

https://Gist.github.com/wemakeweb/55835

Edit 2 Maintenant, je reçois des erreurs de l'éditeur de liens. "Symboles non définis pour l'architecture x86_64"

Résolu, les problèmes étaient

  1. Circulaire y compris
  2. main.c au lieu de main.cpp
  3. le code réel était dans une bibliothèque statique qui n'était pas correctement liée
16
Sebastian Otto

Cette erreur? error: unknown type name ‘class’

Vous le compilez probablement en C plutôt qu'en C++.

Assurez-vous que votre fichier source a un .cpp extension, et que tout indicateur de compilateur pertinent est défini correctement. (Cela aide si vous incluez le message d'erreur exact et les numéros de ligne. N'essayez pas de retaper, coupez et collez simplement.)

26
Roddy

Vous avez au moins une dépendance cyclique d'inclusion entre Feld.h et Figur.h. Les déclarations avancées n'ont aucun effet si vous incluez également les en-têtes. Retirez simplement les inclusions.

6
juanchopanza