2011-03-04 8 views
1

ISBN.cpp:8: error: 'ISBN' has not been declaredClasse non déclarée ?? (C++)

ISBN.cpp:8: error: ISO C++ forbids declaration of 'ISBN' with no type ISBN.cpp: In function 'int ISBN()':

ISBN.cpp:9: error: 'area' was not declared in this scope

ISBN.cpp:10: error: 'publisher' was not declared in this scope

ISBN.cpp:11: error: 'title' was not declared in this scope ISBN.cpp:12: error: 'checkdigit' was not declared in this scope ISBN.cpp:13: error: 'isbnStr' was not declared in this scope

Ligne 8 à 14 sont:

ISBN::ISBN() { 
area = NULL; 
publisher = NULL; 
title = NULL; 
checkdigit = NULL; 
isbnStr = NULL; 
} 

Ils sont tous déclarés dans l'en-tête:

class ISBNPrefix; 
class ISBN 
{ 
private: 
int area; 
int publisher; 
int title; 
char checkdigit; 
char* isbnStr[10]; 
public: 
ISBN(); 
... 

Toutes les idées sur ce qui pourrait être la question ici? Je devine que c'est quelque chose de simple que je manque.

+1

Pourriez-vous essayer d'obtenir le formatage? Il est vraiment difficile de suivre un code sur une seule ligne. Indentez tout votre code par au moins 4 caractères d'espace et tout devrait mieux fonctionner. –

+0

Devise aveugle: Les dépendances d'en-tête circulaires entraînent souvent ce problème, car les protections à inclusion multiple font que la deuxième itération autour de l'en-tête circulaire échoue silencieusement. –

+2

Vous avez '# include 'l'en-tête dans ISBN.cpp, non? – aschepler

Répondre

8

Cela peut sembler évident, mais avez-vous revérifié que vous incluez réellement le fichier d'en-tête dans ISBN.cpp? Peut-être que vous avez accidentellement utilisé la même constante de préprocesseur que celle de deux en-têtes, ce qui a pour effet d'ignorer le fichier avec la déclaration de l'ISBN? Les extraits que vous avez postés me paraissent bien ...

+1

+1 pour "utilisé accidentellement la même constante de préprocesseur" le nombre de fois que j'ai vu cela. – Tony

Questions connexes