das ist mein Header:
#ifndef HEADER_H
#define HEADER_H
class Math
{
private:
static enum names {amin = 27 , ALi = 46};
public:
static void displayMessage();
}
#endif // HEADER_H
und das ist die Header-Definition:
#include <iostream>
#include <iomanip>
#include "Header.h"
using namespace std;
void Math::displayMessage()
{
cout<<amin<<setw(5)<<ALi<<endl;
}
und das ist das wichtigste:
#include <iostream>
#include "Header.h"
using namespace std;
enum Math::names;
int main()
{
Math::displayMessage();
}
ich habe diese Fehler bekommen:
error C2143: syntax error : missing ';' before 'using'
error C2143: syntax error : missing ';' before 'using'
eine davon ist für main und die andere ist für die Header-Definition. Ich habe in meiner Programmierung schon mehrmals begegnet. Ich könnte das für mich in dieser Situation erklären.
bitte hilf mir
freundliche Grüße
Amin Khormaei
Nach der Vorverarbeitung der Quellcode[1] für deine "Header-Definition" wird wie
// 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;
}
Lassen Sie uns jetzt error C2143: syntax error : missing ';' before 'using'
sehen. Wo ist using
im obigen Code? Was ist das vor using
?
}
^ This
using namespace std;
Wegen des Teils des Fehlers, der missing ';'
sagt, müssen wir den fehlenden ;
hinzufügen.
};
^
[1]Genauer gesagt "Übersetzungseinheit".
Nach der Definition von ;
fehlt ein class Math
.
fehlt ';' vor Gebrauch'
Lesen Sie einfach, was es Ihnen sagt. Es fehlt ein; vor using
. Dann schauen Sie sich Ihren Code an, wo haben Sie using
verwendet? (der Compiler hat Ihnen wahrscheinlich die Zeile mitgeteilt)
#include "Header.h"
using namespace std;
Was ist vor using
? Der Header enthält.
Der Compiler durchläuft Ihren Code höchstwahrscheinlich linear. Was er getan hat, als #include "Header.h"
diese Datei durchging Das bedeutet, dass der Fehler das Ende von "Header.h" sein wird. Und in der Tat fehlt es; am Ende der Klassendeklaration, genau wie der Compiler es Ihnen gesagt hat.