我在第6行看到这个错误:
error: expected unqualified-id before '{' token
我看不出哪里不对劲。
#include <iostream>
using namespace std;
class WordGame;
{ // <== error is here on line 6
public:
void setWord( string word )
{
theWord = word;
}
string getWord()
{
return theWord;
}
void displayWord()
{
cout << "Your word is " << getWord() << endl;
}
private:
string theWord;
}
int main()
{
string aWord;
WordGame theGame;
cin >> aWord;
theGame.setWord(aWord);
theGame.displaymessage();
}
7条答案
按热度按时间hts6caw31#
此处不应有分号:
...但在类定义的末尾应该有一个:
bvk5enib2#
顺便说一句,考虑在setWord()中将字符串作为const引用传递,以避免过多的复制。另外,在displayWord中,考虑将其作为const函数,以遵循const-correction。
yjghlzjz3#
去掉
WordGame
后面的分号。你应该在类还小的时候就发现这个问题了,当你写代码的时候,你应该在每次添加半打代码行的时候都在编译。
k5ifujac4#
分号应该在类别定义的结尾,而不是在名称之后:
bn31dyow5#
不管怎么说,我也遇到了同样的问题,但这不是因为一个额外的分号,而是因为我忘记了前一个语句中的分号。
我的情况是
从这段代码中,我的编译器不断告诉我:
error: expected unqualified-id before for (const auto& element: otherObject.myVector) { etc...
,我认为这意味着我写错了for循环。不!我只是在声明otherObject
后忘记了;
。7uhlpewt6#
对于这种情况的任何人:当我不小心用
my_first_scope::my_second_scope::true
代替true
时,我看到了这个错误,如下所示:而不是:
这是因为我有一个宏错误地导致
MY_MACRO(true)
扩展为my_first_scope::my_second_scope::true
,而我实际上是在调用bool my_var = MY_MACRO(true);
。下面是这类作用域错误的快速演示:
程序(您可以在以下网址在线运行该程序:(https://onlinegdb.com/BkhFBoqUw):
输出(建置错误):
请注意错误:
error: expected unqualified-id before ‘true’
,以及错误下面的箭头指向的位置。显然,在我的例子中,“unqualified-id” 是true
前面的双冒号(::
)作用域运算符。当我添加宏并使用它时(在此处运行此新代码:https://onlinegdb.com/H1eevs58D)的数据:
我得到这个新的错误:
ddrv8njm7#
我得到这个错误是因为我没有声明一个变量,而是在进一步使用它。下面是我得到它的原因代码。
这是因为我没有声明一个变量来表示我的〉向量的大小。
替换此处,