一、函数的定义、声明及调用
C++中,函数是一段可以被反复利用的代码,它接受参数并返回一个结果。函数的核心概念包括函数的定义、声明及调用。
1.函数的定义
函数的定义由函数声明和函数体组成,函数声明说明函数名称和参数的类型,函数体包含了实际的函数代码。
int sum(int a, int b) { return a + b; }
2.函数的声明
函数的声明告诉编译器函数的名称、返回类型及参数的类型,但不包含函数体。
int sum(int a, int b);
3.函数的调用
函数调用是使用函数名称和参数来调用函数。参数可以是常量、变量或表达式。
int main() { int a = 1, b = 2; int s = sum(a, b); cout << s << endl; return 0; }
二、形参与实参
C++中,函数的参数分为形参和实参。
1.形参
形参是在函数定义中声明的,用于接收函数调用时传递来的参数。形参的值不会对函数外部变量产生影响。
int square(int x) { return x * x; }
2.实参
实参是在函数调用时传递的值,它可以是常量、变量或表达式。实参通过值传递、指针传递或引用传递给函数。
int main() { int a = 2; int s = square(a); cout << s << endl; return 0; }
三、返回值
C++函数的返回值可以是任意的数据类型,包括基本数据类型、结构体、指针等。函数可以返回一个值或不返回任何值。
int max(int a, int b) { if(a > b) { return a; } return b; }
四、函数重载
函数重载是指在同一作用域中定义多个同名函数,但参数类型或参数个数不同,使其可以根据传递的参数进行函数的调用。
void print(int x) { cout << "Int: " << x << endl; } void print(string s) { cout << "String: " << s << endl; }
五、默认参数
默认参数是指为参数在声明时指定默认值,如果函数调用时没有传递该参数,则使用其默认值。
int power(int x, int n = 2) { int res = 1; for(int i = 0; i < n; i++) { res *= x; } return res; }
在函数调用时可以不传递参数n。
int main() { int a = 2; int s1 = power(a); int s2 = power(a, 3); cout << s1 << " " << s2 << endl; return 0; }
六、内联函数
内联函数是将函数调用替换为函数体本身,以便在程序执行时减少函数调用的开销。
inline int add(int a, int b) { return a + b; }
七、lambda表达式
lambda表达式是匿名函数,可以在函数内部定义和返回函数。它包括一个参数列表和一个函数体,可以捕获一个或多个函数外部变量。
auto sum = [](int a, int b) { return a + b; }; int s = sum(2, 3); cout << s << endl;
八、总结
C++函数是程序的基本组成部分,函数的定义、声明及调用、形参与实参、返回值、函数重载、默认参数、内联函数和lambda表达式是函数的重要概念和技术。熟练掌握这些概念和技术对于开发高质量的C++应用程序至关重要。