1.先声明,后定义。
调用在定义的前面或者后面。
函数声明时给出默认形参值,定义(实现)时候不能再出现默认形参
/*
函数声明时给出默认形参值,定义(实现)时候不能再出现默认形参
*/
#include
#include
using namespace std;
int add(int a=2,int b=1);//
int main()
{
cout<
2.无声明时,先定义,后使用
#include
#include
using namespace std;
int add(int a=2,int b=1)
{
return a+b;
}
int main()
{
cout<
3.有默认值的形参必须在形参列表后面。
(从右向左)
因为在函数调用时,实参与形参的结合时从左到右进行。
两个或者两个以上的函数,但是形参的个数和类型不同,编译器根据实参和形参的类型以及个数进行匹配,自动确定调用哪一个函数,这就是函数的重载。
例题:
下面的函数声明中, 哪一个是” void BC(int a, int b);”的重载函数? (B)- A. int BC(int a, int b)
- B. void BC(int a, char b)
- C. float BC(int a, int b, int c = 0)
- D. void BC(int a, int b=0)
B选项
#include
#include
using namespace std;
int add(int a,int b=1)
{
return a+b;
}
int add(int a,char b)
{
return a+b;
}
int main()
{
cout<
注意:要避免二义性
如下这时代码是错误的 编译器不知道要调用哪个add函数。
//这是错误的代码!!!
#include
#include
using namespace std;
int add(int a,int b=1)
{
return a+b;
}
int add(int x)
{
return x;
}
int main()
{
cout<
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)