函数的重载( overloading )是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
程序示例:
[C++] 纯文本查看 复制代码 #include <iostream>
#include <string>
void overloadingfunc (int i)
{
std::cout << "i: " << i << '\n';
}
void overloadingfunc (double k)
{
std::cout << "k: " << k << '\n';
}
void overloadingfunc (std::string str)
{
std::cout << "str: " << str << '\n';
}
int main(void)
{
overloadingfunc (10);
overloadingfunc (16.8);
overloadingfunc ("hello overloading function");
return 0;
}
运行输出:$ ./overloading
i: 10
k: 16.8
str: hello overloading function 由此可见,在使用 overloadingfunc() 函数时,使用不同的参数可以被相应的函数自动匹配。可以通过对程序的反汇编看到编译器是如何解决命名冲突的。 |