曲径通幽论坛

标题: 函数的重载 [打印本页]

作者: beyes    时间: 2011-7-10 12:30
标题: 函数的重载
函数的重载( 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() 函数时,使用不同的参数可以被相应的函数自动匹配。可以通过对程序的反汇编看到编译器是如何解决命名冲突的。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2