C++ expected unqualified-id before '{' token

#include <iostream>
using namespace std;
int main ()
{
int add(int x,int y);
int a,b,c;
c=add(a,b);
cout<<"a+b="<<c<<endl;
return 0;
}
int add(int x,int y);
{ //提示此处出错
int z;
z=x+y;
return (z);
}

函数的题目后面多加了“;”就会出现这个提示。是复制的时候把函数声明里面的“;”也复制上去。

int add(int x,int y)的后面多了个分号,编译器当这是一条完整的声明,于是后面一块代码在函数外部出现就出错。

#include <iostream>

using namespace std;

int main ()

{

int add(int x,int y);

int a,b,c;

cin>>a,b; //从键盘输入a和b(用空格/回车等分开两个输入项)。

c=add(a,b);

cout<<"a+b="<<c<<endl;

cin.get();//等待键盘按键,这里可以防止计算完程序直接结束。

return 0;

}

int add(int x,int y) //函数定义中函数头后面不应该加分号。

{

int z;

z=x+y;

return (z);

}

扩展资料:

在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。

参考资料来源:百度百科-C++

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-07
int add(int x,int y)的后面多了个分号,编译器当这是一条完整的声明,于是后面一块代码在函数外部出现就出错了。
去掉这个分号就可以编译正常了。不过a,b没初始化就使用,没什么意义。
改了一下:
#include <iostream>
using namespace std;
int main ()
{
int add(int x,int y);
int a,b,c;
cin>>a,b; //从键盘输入a和b(用空格/回车等分开两个输入项)。
c=add(a,b);
cout<<"a+b="<<c<<endl;
cin.get();//等待键盘按键,这里可以防止计算完程序直接结束。
return 0;
}
int add(int x,int y) //函数定义中函数头后面不应该加分号。
{
int z;
z=x+y;
return (z);
}
====
[原创回答团]

参考资料:原创 + Dev-C++确认

本回答被提问者采纳
第2个回答  2019-01-09
函数的题目后面多加了“;”就会出现这个提示。可能是你复制的时候把函数声明里面的“;”也复制上去了