c'est mon entête:
#ifndef HEADER_H
#define HEADER_H
class Math
{
private:
static enum names {amin = 27 , ALi = 46};
public:
static void displayMessage();
}
#endif // HEADER_H
et voici la définition de l'en-tête:
#include <iostream>
#include <iomanip>
#include "Header.h"
using namespace std;
void Math::displayMessage()
{
cout<<amin<<setw(5)<<ALi<<endl;
}
et c'est le principal:
#include <iostream>
#include "Header.h"
using namespace std;
enum Math::names;
int main()
{
Math::displayMessage();
}
j'ai eu ces erreurs:
error C2143: syntax error : missing ';' before 'using'
error C2143: syntax error : missing ';' before 'using'
l'un d'eux est pour principal et l'autre est pour la définition d'en-tête, J'ai rencontré plusieurs fois dans ma programmation, pourrait l'expliquer pour moi dans cette situation,
aidez-moi, s'il vous plaît
meilleures salutations
Amin Khormaei
Après le prétraitement, votre code source[1] pour votre "définition d'en-tête" devient comme
// iostream contents
// iomanip contents
class Math
{
private:
static enum names {amin = 27 , ALi = 46};
public:
static void displayMessage();
}
using namespace std;
void Math::displayMessage()
{
cout<<amin<<setw(5)<<ALi<<endl;
}
Voyons maintenant error C2143: syntax error : missing ';' before 'using'
. Où est using
dans le code ci-dessus? Qu'est-ce que c'est avant using
?
}
^ This
using namespace std;
En raison de la partie de l'erreur qui dit missing ';'
, nous devons ajouter ce ;
manquant.
};
^
[1]Plus précisément appelé "unité de traduction".
Il vous manque un ;
après la définition de class Math
.
manquant ';' avant d'utiliser'
Il suffit de lire ce que cela vous dit. Il manque un; avant using
. Ensuite, regardez votre code, où avez-vous utilisé using
? (le compilateur vous a probablement dit la ligne)
#include "Header.h"
using namespace std;
Que se passe-t-il avant using
? L'en-tête comprend.
Il est fort probable que le compilateur parcourt votre code de manière linéaire. Par conséquent, ce qu’il a fait lorsqu’il a vu #include "Header.h"
était de parcourir ce fichier. Cela signifie que l'erreur sera la toute fin de "Header.h". Et en effet, il manque un; à la fin de la déclaration de classe, tout comme le compilateur vous l'a dit.