函数

函数

函数默认参数

函数的形参列表中的形参是可以有默认值的。

语法: 返回值类型 函数名 (参数= 默认值){}

int function(int a, int b = 10, int c = 10) 
{
	return a + b + c;
}

注意事项:

  • 若传入数据,则使用传入的数据,否则使用默认值。
  • 若某个参数有默认值,那么从这个参数往后,必须都要有默认值。
  • 函数的声明和定义只能有一个带默认参数,否则会引起二义性。

函数占位参数

函数的形参列表里可以有占位参数,调用函数时必须填补该占位。

语法: 返回值类型 函数名 (数据类型){}

void func(int a, int = 10) {}

注意事项:

  • 占位参数也可以有默认参数。
  • 占位参数必须填补。

函数重载

作用:函数名可以相同,提高复用性。

函数重载满足条件:

  • 同一个作用域下。
  • 函数名称相同,但函数签名不同
  • 函数参数类型不同个数不同顺序不同
  • 函数的返回值不可以作为函数重载的条件。

注意事项:

  • 引用作为重载条件

    void function(int &a)
    {
    	cout << "function(int &a) 调用 " << endl;
    }
    void function(const int &a)	//对常量的引用
    {
    	cout << "function(const int &a) 调用 " << endl;
    }
    function(a); //调用无const
    function(10);//传入一个常量,调用对常量的引用
    
  • 函数重载遇到默认参数

    void function(int a, int b = 10)
    {
    	cout << "function(int a, int b = 10) 调用" << endl;
    }
    void function(int a)
    {
    	cout << "function(int a) 调用" << endl;
    }
    function(10);	//引发二义性
    

    函数重载尽量少使用默认参数。

  • const

    void function(int a) {}
    void function(int a) const {}
    

    这两个函数签名不同。

posted @ 2025-10-13 23:48  单身喵  阅读(1)  评论(0)    收藏  举报