黑马程序员技术交流社区

标题: 关于重载 [打印本页]

作者: 米大米    时间: 2014-4-16 10:37
标题: 关于重载
下列函数中能和函数int max(int  a,  int  b, double  c)构成重载关系的是(  )
A.  double  max(int  a, int  b, double  c)
B.  void  max(int  a, double  c, int  b)
C.  int  max(double a, int  b)
D.  int  max(int  x, int  y, double  z)

重载时候应该如何判断 看到选项感觉都差不多 就迷惑了
这是个多选题  如何解答
作者: ^o(孤8o|狼i¤F    时间: 2014-4-16 10:40

下列函数中能和函数int max(int  a,  int  b, double  c)构成重载关系的是(  )
A.  double  max(int  a, int  b, double  c)
B.  void  max(int  a, double  c, int  b)
C.  int  max(double a, int  b)
D.  int  max(int  x, int  y, double  z)

重载 要求 你只要看参数 就行 条件  
参数列表 不同
参数 个数不同
抓住这两个条件即可
作者: ^o(孤8o|狼i¤F    时间: 2014-4-16 10:42


下列函数中能和函数int max(int  a,  int  b, double  c)构成重载关系的是(  )
A.  double  max(int  a, int  b, double  c)
B.  void  max(int  a, double  c, int  b)
C.  int  max(double a, int  b)
D.  int  max(int  x, int  y, double  z)

重载 要求 你只要看参数 就行 条件  
参数列表 不同
参数类型不同
抓住这两个条件即


答案 是b


作者: 黑马-幻灭    时间: 2014-4-16 10:43
这个应该选B、C两个选项吧,两个函数重载应该满足:函数名相同,在相同的作用域内,其参数类型、参数个数,参数顺序不同才能构成函数重载
作者: 坏米饭    时间: 2014-4-16 10:44
答案应该是BC。因为:A:只有返回值类型不一样,这样的函数不能同时出现再一个区域中。D:只是参数的变量名不一样,其他都一样,没任何区别,当然不是重载。
作者: tacyjay在路上    时间: 2014-4-16 10:45
选BC,关键在于参数的个数和类型,与返回值没有关系。A只是返回值类型不同,不重载;B是参数类型不同,重载;C是参数个数不同,重载;D是一个函数,只不过是局部变量的名称不一样而已,不重载。
作者: 杨庆雷    时间: 2014-4-16 11:59

下列函数中能和函数int max(int  a,  int  b, double  c)构成重载关系的是(  BC  )
A.  double  max(int  a, int  b, double  c)
B.  void  max(int  a, double  c, int  b)
C.  int  max(double a, int  b)
D.  int  max(int  x, int  y, double  z)

判断是不是重载  看两部分就行,其他不管
函数名和参数列表 函数名相同 参数列表不同就是重载跟前面的返回值   没关系
函数名  比如说你这个题  函数名是max 下面的函数名都是 max 再看参数列表  参数列表 分为两部分 参数类型和参数个数   只要其一不同  就说明参数列表不同  
     题目中 参数类型为 int  int  double   个数为三个
     A    int  int  double    不满足 (参数列表相同了)
     B    int  double  int    满足
     。。。。
     。。。







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2