错误:在 C++ 中返回之前应为非限定 ID
error : expected unqualified-id before return in c++
当我想编译时,我得到:问题:"返回"之前的预期不合格ID返回 0;关于最后一行:错误:在 { 令牌之前扩展声明
我只保留了代码的中间部分,只是我更改了...问题出在哪里???这是我的代码:
#include <iostream>
using namespace std;
int main()
{
cout << "Pensez a un personnage : Mlle Rose, le Professeur Violet, "
<< "le Colonel Moutarde," << endl
<< "le Reverend Olive ou Mme Leblanc." << endl << endl;
cout << "Votre personnage a-t-il des moustaches (1 : oui, 0 : non) ? ";
bool moustaches;
cin >> moustaches;
cout << "Votre personnage porte-t-il des lunettes ? ";
bool lunettes;
cin >> lunettes;
cout << "Votre personnage porte-t-il un chapeau ? ";
bool chapeau;
cin >> chapeau;
cout << "Est-ce que votre personnage est un homme ? ";
bool homme;
cin >> homme;
cout << "==> Le personnage auquel vous pensez est ";
if (chapeau) {
/*******************************************
* Completez le programme a partir d'ici.
*******************************************/
cout << "le Professeur Violet";
else if (moustaches) {
cout << "le Colonel Moutarde";
}
else if (not lunettes) {
cout << "Mlle Rose";
}
else if (homme) {
cout <<"le Révérend Olive";
}
else {
cout <<"Mme Leblanc";
}
/*******************************************
* Ne rien modifier apres cette ligne.
*******************************************/
}
cout << endl;
return 0;
}
----------
只是为了那些出于与我相同的原因降落在这里的人:
不要使用保留关键字
我在类定义 delete() 中命名了一个函数,这是一个保留关键字,不应用作函数名称。将其重命名为 delete()(这在我的情况下在语义上也很有意义)解决了这个问题。
有关保留关键字的列表:http://en.cppreference.com/w/cpp/keyword
我引用:"由于它们被语言使用,这些关键字不可用于重新定义或重载。
if (chapeau) {
您忘记了此 if
语句的结尾大括号,因此后续else if
被视为语法错误。您需要在if
语句正文完成后添加大括号:
if (chapeau) {
cout << "le Professeur Violet";
}
else if (moustaches) {
cout << "le Colonel Moutarde";
}
// ...
建议:
- 使用一致的 3-4 空格缩进,您会发现这些问题更容易
- 使用垂直排列 {} 的大括号样式,您将很快看到这些问题
- 始终缩进控制阻止另一个级别
- 使用语法突出显示编辑器,它会有所帮助,你以后会感谢我的
例如
type
functionname( arguments )
{
if (something)
{
do stuff
}
else
{
do other stuff
}
switch (value)
{
case 'a':
astuff
break;
case 'b':
bstuff
//fallthrough //always comment fallthrough as intentional
case 'c':
break;
default: //always consider default, and handle it explicitly
break;
}
while ( the lights are on )
{
if ( something happened )
{
run around in circles
if ( you are scared ) //yeah, much more than 3-4 levels of indent are too many!
{
scream and shout
}
}
}
return typevalue; //always return something, you'll thank me later
}
您需要
将cout << endl;
行之前的"}
"移动到第一个else
之前的行。
相关文章:
- 从函数角度看ID到文件路径的内部与外部映射
- 通过组合不同的类型来创建唯一的id
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- FFMPEG配置文件级别id大小无效
- 方法内部但循环仍得到预期的不合格id错误C++
- 如何获取 GLFW 窗口 ID?
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 显示数组中的学生 ID 和最高分
- C++:"("令牌"之前有预期的非限定 id 指向类中成员函数的指针
- 在PostgreSQL中根据它们的ID选择大量行的最快方法是什么?
- Xcode 9.4.1 中的 Apple Mach-O 链接器 (id) 错误
- 错误:令牌 { '{' 之前应存在非限定 ID
- 断言"id < 0"在Qt ActiveX中失败
- C++部分概念 id:显式模板规范顺序/第一个参数的特殊状态的原因是什么?
- 如何根据两个因素组织向量:id 和数量?(C++)
- 在返回 0 之前应为非限定 ID
- Direct3D 11 - HLSL - 获取顶点索引 ID
- 编译时检查特征专用化是否具有唯一 ID
- DCMTK 了解"DIMSE 没有有效的演示上下文 ID"错误
- 一种有效的数据结构,用于按 ID 访问和查找加权随机项