函数与重载
C++ 的函数比 C 多了几个特性:函数重载、默认参数、引用传递,还有 lambda 表达式。
函数重载
同名函数,参数列表不同(数量或类型),编译器按调用参数自动选版本。
默认参数
参数可以给默认值:int add(int a, int b = 10),调用时可以少传。
引用 &
void swap(int &a, int &b) 引用传参,直接操作原变量,比指针更安全直观。
lambda
匿名函数:[捕获](参数) -> 返回类型 { 函数体 },STL 算法里用得非常多。
代码示例
#include <iostream>
using namespace std;
// 函数重载
int max(int a, int b) { return a > b ? a : b; }
double max(double a, double b) { return a > b ? a : b; }
// 引用传参
void swap(int &a, int &b) {
int t = a; a = b; b = t;
}
// 默认参数
int add(int a, int b = 10) { return a + b; }
int main() {
cout << max(3, 5) << endl; // 调 int 版
cout << max(3.5, 2.1) << endl; // 调 double 版
int x = 1, y = 2;
swap(x, y);
cout << "x=" << x << " y=" << y << endl;
cout << add(5) << endl; // 15(默认参数)
// lambda
auto square = [](int n) { return n * n; };
cout << square(7) << endl; // 49
return 0;
}