《C++ primer》学习笔记之三十二:function overload resolution概述
2006-04-14 01:48
337 查看
function overload resolution (注意这里的function不是类的成员)
hidden: 两个scope,外面的叫"外scope",内面的叫"内scope",则对内scope内的函数调用来说,内scope内定义的函数会hidden外scope内定义的函数(既使参数不同也会hidden)。
overload:同一个scope内,有相同名字不同规格(主要是参数不同)的函数就是overload函数
对于一个函数调用,编译器寻找合适的函数定义的过程分三步:
1. 寻找“候选”(candidate)的函数集合
2. 在"候选集合"中寻找“可用”(viable)的函数集合
3. 在"可用集合"中寻找"最佳"(best)函数
这三步是依次执行的, 如果1,2找到的集合为空,则失败;如果3步找到多个,则失败。注意,不会因为后面的一步失败而回过来再执行前面的步骤。
hidden: 两个scope,外面的叫"外scope",内面的叫"内scope",则对内scope内的函数调用来说,内scope内定义的函数会hidden外scope内定义的函数(既使参数不同也会hidden)。
overload:同一个scope内,有相同名字不同规格(主要是参数不同)的函数就是overload函数
对于一个函数调用,编译器寻找合适的函数定义的过程分三步:
1. 寻找“候选”(candidate)的函数集合
2. 在"候选集合"中寻找“可用”(viable)的函数集合
3. 在"可用集合"中寻找"最佳"(best)函数
这三步是依次执行的, 如果1,2找到的集合为空,则失败;如果3步找到多个,则失败。注意,不会因为后面的一步失败而回过来再执行前面的步骤。
相关文章推荐
- 《C++ Primer》学习笔记之vector
- 《C++ Primer》学习笔记【第二部分 C++标准库】
- 《C++ primer》学习笔记之一:#include如何寻找头文件
- 《C++ Primer》学习笔记:3.3.3其他vector操作
- 《C++ primer》学习笔记之八:特殊字符
- 《C++ primer》学习笔记之十六: typedef的奇怪的用法
- 《C++ primer》学习笔记之二十四:template function 的定义
- 《c++ primer》第二章学习笔记
- 《c++ primer》学习笔记 第六章 语句
- 《C++ primer》学习笔记之一:#include如何寻找头文件
- 《C++ primer》学习笔记之十七:查看vc的c++标准库的结构
- 《C++ primer》学习笔记之二十五:template function 的实例化
- 《C++ primer》学习笔记之三十五:function overload resolution之三寻找最佳函数,及常见编译错
- 《C++ Primer》学习笔记——第三章C++数据类型
- 《C++ Primer》学习笔记:习题9.39 string对象中单词统计
- C++ Primer(第4版)-第2部分:容器和算法——学习笔记
- 《C++ Primer》学习笔记【第一部分 C++基础】
- 《C++ Primer》学习笔记:向vector对象添加元素蕴含的编程假定
- 《c++ primer》学习笔记——泛型算法
- 《C++ primer》学习笔记之二十六:None-type template parameter