这是我的标题:
#ifndef HEADER_H
#define HEADER_H
class Math
{
private:
static enum names {amin = 27 , ali = 46};
public:
static void displayMessage();
}
#endif // HEADER_H
这是标题定义:
#include <iostream>
#include <iomanip>
#include "Header.h"
using namespace std;
void Math::displayMessage()
{
cout<<amin<<setw(5)<<ali<<endl;
}
这是主要的:
#include <iostream>
#include "Header.h"
using namespace std;
enum Math::names;
int main()
{
Math::displayMessage();
}
我收到了这些错误:
error C2143: syntax error : missing ';' before 'using'
error C2143: syntax error : missing ';' before 'using'
其中一个是主要的,另一个是标题定义, 我在编程中遇到过几次 可以在这种情况下为我解释,
请帮帮我
最好的问候
Amin khormaei
答案 0 :(得分:13)
预处理后,“标题定义”的源代码 [1] 变得像
// 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;
}
现在让我们看看error C2143: syntax error : missing ';' before 'using'
。上面的代码中using
在哪里? using
之前的内容是什么?
}
^ This
using namespace std;
由于错误中标有missing ';'
的部分,我们必须添加错误的;
。
};
^
[1] 更准确地称为“翻译单位”。
答案 1 :(得分:6)
在;
的定义后,您错过了class Math
。
答案 2 :(得分:0)
缺少';'在'使用'之前
请阅读它告诉你的内容。有一个失踪;在using
之前。然后查看您的代码,您在哪里使用using
? (编译器很可能告诉你这一行)
#include "Header.h"
using namespace std;
using
之前的事情是什么?标题包括。
编译器很可能以线性方式遍历您的代码,因此它在查看#include "Header.h"
时所执行的操作是通过该文件。这意味着错误将是“Header.h”的结尾。事实上,有一个缺失;在类声明的最后,就像编译器告诉你的那样。