永发信息网

C++函数问题

答案:3  悬赏:0  手机版
解决时间 2021-04-28 12:53
  • 提问者网友:謫仙
  • 2021-04-28 01:52

#include<iostream>
int add(int x,int y)
{
return x+y;
}
using namespace std;
int main()
{
int x=1,y=2;
cout<<add(x,y);
return 0;
}

但是为什么改成这样2种,却是编译错误呢。

1.

#include<iostream>
void add(int ,int );
using namespace std;
int z;
int main()
{
int x=1,y=2;
add(x,y);
return 0;
}
int add(int x,int y)
{

z=x+y;
cout<<z<<endl;
return 0;
}

2.

#include<iostream>
void add(int ,int);
using namespace std;
int main()
{
int x=1,y=2;
cout<<add(x,y);
return 0;
}
int add(int x,int y)
{
return x+y;
}

最佳答案
  • 五星知识达人网友:独行浪子会拥风
  • 2021-04-28 02:50
因为你声明的时候是
void add(int ,int);
而你定义的时候却又是
一个无返回值 一个又返回int
int add(int x,int y)
{
return x+y;
}
把编译器弄糊涂了嘛 呵呵
全部回答
  • 1楼网友:長槍戰八方
  • 2021-04-28 04:37

1.int add(int x,int y)这个函数你在前面声明为void add(int ,int );自然有错误,只要把void add(int ,int );改为int add(int ,int );就行了。

2.和第一题的错误地方相同。改过来就行了。

  • 2楼网友:举杯邀酒敬孤独
  • 2021-04-28 03:42

void add(int ,int); 声明 和实现的返回值 类型 不一样

不能基于返回值重载函数!

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯