📅  最后修改于: 2023-12-03 15:13:58.076000             🧑  作者: Mango
在 C++ 中,函数重载和默认参数是常见的特性。它们可以提高代码的可读性、可维护性和可重用性。
函数重载是指在同一个作用域内定义多个同名函数,它们的参数列表不同(参数类型、参数个数、参数顺序等),这样在调用函数时就可以根据传递的参数自动匹配到正确的函数。
下面是一个简单的例子,演示了函数重载的用法:
#include <iostream>
void print(int x) {
std::cout << "The integer value is: " << x << std::endl;
}
void print(double x) {
std::cout << "The double value is: " << x << std::endl;
}
int main() {
print(10);
print(3.14);
return 0;
}
输出结果:
The integer value is: 10
The double value is: 3.14
print(int)
和 print(double)
都是同名函数,但它们的参数类型不同,因此可以根据传递的参数类型自动匹配到正确的函数。
函数重载的注意事项:
默认参数是指在函数声明时,给部分参数指定一个默认值,调用函数时如果没有传递实参,则使用默认值。
下面是一个简单的例子,演示了默认参数的用法:
#include <iostream>
void print(int x, int y = 0, int z = 0) {
std::cout << "The values are: " << x << ", " << y << ", " << z << std::endl;
}
int main() {
print(1);
print(2, 3);
print(4, 5, 6);
return 0;
}
输出结果:
The values are: 1, 0, 0
The values are: 2, 3, 0
The values are: 4, 5, 6
print
函数指定了两个默认参数 y
和 z
,调用时如果没有传递对应的实参,则使用默认值。可以看到,第一个调用只传递了一个实参,y
和 z
的值都是默认值 0
;第二个调用只传递了两个实参,z
的值是默认值 0
。
默认参数的注意事项:
在函数中既可以使用函数重载,又可以使用默认参数,这样可以进一步增强函数的灵活性。
下面是一个例子,演示了函数重载和默认参数的结合使用:
#include <iostream>
void print(int x, int y = 0) {
std::cout << "The values are: " << x << ", " << y << std::endl;
}
void print(double x, double y, double z = 0.0) {
std::cout << "The values are: " << x << ", " << y << ", " << z << std::endl;
}
int main() {
print(1);
print(2, 3);
print(4.0, 5.0);
print(6.0, 7.0, 8.0);
return 0;
}
输出结果:
The values are: 1, 0
The values are: 2, 3
The values are: 4, 5, 0
The values are: 6, 7, 8
print(int, int)
和 print(double, double, double)
都是同名函数,但它们的参数类型和参数个数不同,因此可以根据传递的参数自动匹配到正确的函数。其中,print(int, int)
中的第二个参数使用了默认参数,print(double, double, double)
中的第三个参数也使用了默认参数。
函数重载和默认参数是 C++ 中常见的特性,它们可以在一定程度上提高代码的可读性、可维护性和可重用性。熟练掌握函数重载和默认参数的用法,可以写出更加灵活、高效的函数。