函数重载 · 同名不同参 · 编译期按实参选版本

三个同名 add 靠参数列表区分 编译器在编译期把每次调用「绑定」到唯一匹配的版本
一组同名函数(重载集) int add(int a, int b) _Z3addii double add(double a, double b) _Z3adddd int add(int a, int b, int c) _Z3addiii 编译器为每个版本起不同内部名(name mangling) 程序里的调用 add(3, 4) 实参:int, int add(2.5, 1.5) 实参:double, double ↘ 绑定到 add(int, int) ↗ 绑定到 add(double, double) 靠参数列表(个数 / 类型 / 顺序)区分 不能只靠返回值类型区分重载 编译期(静态)绑定 按实参与形参匹配,在编译时就选定版本 同名是为了好用,分派由编译器在编译期完成