(一)函数重载(Function Overloading)

  1. 定义

多个函数同名,但参数列表不同(参数个数、类型或顺序不同),编译器通过函

数签名区分。

  1. 示例:重载 max 函数
// 1. 两个int的最大值
int max(int a,int b){ return a > b ? a : b;}
// 2. 两个double的最大值
double max(double a, double b){ return a > b ? a : b; }
// 3. 三个double的最大值(调用两个重载)
double max(double a, double b, double c){return max(max(a,b),c);}

//  调用:
max(3, 4);// 匹配1,返回4
max(3.0, 5.4);// 匹配2,返回5.4
max(3.0, 5.4, 10.1);// 匹配3,返回10.1

注意:歧义调用(Ambiguous Invocation)

(二)函数原型(Function Prototype)

  1. 定义

函数声明的简化形式,仅指定函数签名和返回值类型,无需实现(函数体),用于告诉编译器函数的“接口”。

  1. 作用

示例:使用函数原型

#include <iostream>
using namespace std;

//函数原调(声明)
int max(int a, int b);
double max(double a, double b);

int main(){
	cout << max(3, 4) << endl; //可正常调用,无需提前看到函数定义
	return 0;
}

//函数定义(实现)
int max(int a, int b){ return a > b ? a : b;}
double max(double a, double b){ return a > b ? a : b;}
	

(三)默认参数(Default Arguments)

  1. 定义

声明函数时为形参指定默认值,调用时可省略该参数(使用默认值)。