函数提高

函数的默认参数

如果声明中有默认函数,那实现中就不能有默认参数

int Sum(int a = 10, int b = 20);    //声明

int Sum(int a,int b)    //实现
{
    return a + b;
}

cout << Sum() << endl;
cout << Sum(3,4) << endl;

函数的占位参数

void func(int a, int);
void func(int a, int = 10);

函数重载

  1. 函数名相同,提高复用性
  2. 参数类型、个数、顺序 不同
  3. 函数返回值不可以作为函数重载的条件
  4. 同一个作用域
void func(int a);
void func(int a, int b);

引用作为重载的条件

void func(int &a);  //变量传入 走这个
int a = 10;
func(a);    //变量传入

void func(const int &a);    
func(10);   
//const int &a = 10; 合法,加const 相当于创建了一个临时变量,把10赋给他,让a指向这个临时的空间
//int &a = 10; 不合法

函数重载碰到默认参数

void func(int a);

void func(int a, int b = 10);

//语法是通过的

func(10);
//实际上存在二义性,无法进行调用

你可能感兴趣的:(函数提高)