读书人

函数宣言指什么

发布时间: 2013-10-11 14:52:39 作者: rapoo

函数声明指什么?
习题:
函数int sum(int a=l,int b=1,int c=3)可与下列哪个函数同时声明( )
A.double sum(int);B.char sum(int,int);
C.int sum(double);D.int sum(int,int,int);
答案是C!可我把这5个函数放在一起声明也没报错:

#include<iostream.h>
int sum(int a=1,int b=1,int c=3);
double sum(int);
char sum(int,int);
int sum(double);
int sum(int,int,int);
void main( ){
}

我哪里理解错了?
[解决办法]
考你的是函数重载吧!返回值不能作为重载的依据 A B D 明显都不是 所以是C 参数不同
[解决办法]
题目不严谨,需要揣摩出题人意图。
[解决办法]
搞一本基础经典教材看看!考试题集不靠谱居多!
[解决办法]
不用去理会某些题目 知道申明是怎么回事就是了 题目也是人出的 每年都有很多考题很蛋疼的 这也不是没见过的了
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

题目不严谨,需要揣摩出题人意图。
是2009年C++全国自考的考题。难道是出错题了?这也太随意了吧!

只声明,不调用是没有问题的,调用就歧义了。
所以说不严谨,这种考试的考题不严谨很正常。

我刚学,所以只能实测才知道!
刚才运行了,调用确实出错了:
#include<iostream.h>
int sum(int a=1,int b=1,int c=3);
double sum(int);
char sum(int,int);
int sum(double);
int sum(int,int,int);
void main( ){
char sum(1,2);//too many initializers
}

char sum(1,2)只能调用char sum(int,int),为什么有歧义呢?

返回值的类型不能成为重载的依据,必须是函数参数的个数、顺序和类型。

读书人网 >C++

热点推荐