重载函数的调用匹配,依次按照下列规则来判断:

精确匹配:参数匹配而不做转换,或者只是做微不足道的转换,如数组名到指针、函数名到指向函数的指针、T到const T;

提升匹配:即整数提升(如bool到int、char到int、short到int),float到double;

使用标准转换匹配:如int到double、double到int、double到long double、Derived*到Base*、T*到void*、int到unsigned int;

使用用户自定义匹配;

使用省略号匹配:类似于printf中省略号参数。

假如运行环境int类型4bytes,short类型2bytes,long类型8bytes,存在代码:unsigned short x = 65530;int a = myfunc( x, 20.0 );
会优先匹配以下哪一个重载函数?
A. int myfunc( double, double )
B. int myfunc( short, double )
C. double myfunc( int, float )
D. double myfunc( int, double)

答案为D!

转载于:https://www.cnblogs.com/bonelee/p/5951718.html

重载函数的调用匹配规则相关推荐

  1. C++ 函数匹配 重载函数的调用规则

    学习<C++ Primer>一书中,函数匹配这一节内容信息较多,现截取重点内容记录于此.便于你对本文内容更好的理解,你需对类型提升.算术类型转换以及顶层cosnt,底层const有一定的了 ...

  2. c语言sqrt多个重载函数,“sqrt”: 对重载函数的调用不明确——解决方法

    #include #include using namespace std; int main(){ int i,j,k,flag; i = 2; while(i <= 100){ flag = ...

  3. 确定重载函数被调用的依据

    这个标题或许还可以叫做,怎么样判断两个函数是否是重载函数. 由于今天做了道面试题,题目是:系统在调用重载函数时,能作为确定那个重载函数被调用的依据是() 我选的是A函数返回类型,正确答案是B参数个数. ...

  4. C++ 泛型编程(一):模板基础:函数模板,类模板,模板原理,模板匹配规则

    类模板 函数模板 泛型编程 泛型编程,泛型即是指具有在多种数据类型上皆可操作的含义,其实就是能够帮助开发者编写完全一般化并可重复使用的算法,同样的工作不需要做多次,同样的算法针对不同的类型也不应该写多 ...

  5. C++ 泛型编程(一):模板基础:函数模板、类模板、模板推演成函数的机制、模板实例化、模板匹配规则

    文章目录 泛型编程 函数模板 函数模板实例化 隐式实例化 显式实例化 函数模板的匹配规则 类模板 类模板的实例化 泛型编程 泛型编程旨在削减重复工作,如: 将一个函数多次重载不如将他写成泛型. voi ...

  6. 深入理解C++重载函数

    深入理解C++重载函数 1.定义:C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数.类型或者顺序)必须不同,即函数的参数列表不同,也就是说用同一个运算符完成不 ...

  7. C++入门之命名空间、缺省函数、重载函数及引用

    目录 一.命名空间 1.概念 (1)流插入运算符和流提取运算符 2.命名空间出现的意义 (1)c语言的命名缺陷 (2)如何解决命名冲突 3.命名空间的使用 (1)不展开使用 (2)完全展开使用 (3) ...

  8. 重载函数与虚函数的区别

    重载函数与虚函数的区别: 重载函数只要求函数有相同的函数名,并且重载函数是在相同作用域中定义的名字相同的不同函数.而虚函数不仅要求函数名相同,而且要求函数的签名.返回类型也相同.也就是说函数原型必须完 ...

  9. 彻底理清重载函数匹配

    前言 前面我们讲到了<什么是函数重载?>,有了函数重载之后,就需要确定某次调用需要选用哪个函数.这个过程可以称之为函数匹配或者重载确定.大多数情况下,我们都很容易能够确定某次调用需要选用哪 ...

最新文章

  1. css垂直居中问题~
  2. python怎么读文件夹下的文件夹-如何使用Python读取文件夹中的文件数量?
  3. 算法杂货铺——k均值聚类(K-means)
  4. LightOJ - 1222 Gift Packing(最大费用最大流/KM)
  5. Asp.Net Core Identity 骚断腿的究极魔改实体类
  6. css中hover的妙用!!
  7. [雪峰磁针石博客]数据仓库快速入门教程1简介
  8. linux boot 空间不足,解决Ubuntu 提示boot分区空间不足办法
  9. C#热血传奇游戏服务端再次开源更新
  10. 通达信版弘历软件指标_弘历趋势王版指标公式详解 通达信趋势弘历
  11. HTML5基础网页设计(加代码CSS)
  12. 插入排序、冒泡排序、归并排序、快速排序
  13. [Groovy]Groovy with Ant Task
  14. c语言爬楼梯不用递归,[leetcode]爬楼梯的递归和非递归方法
  15. 远程如何重装linux系统,独立服务器远程重装Linux系统
  16. 迅为3A5000_7A2000开发板龙芯国产处理器LoongArch架构
  17. 物联网板开发入门指南
  18. 死锁产生和避免及计算题
  19. 人机博弈 围棋程序GNU GO 所有版本源码及使用方法
  20. uni-app 拍照或从相册上传图片

热门文章

  1. android开发toast通知,Toast Notifications
  2. java 自动封装_自动补全的java封装
  3. 使用商业模式的九大模块去分析京东的商业模式_商业模式—筑基篇(1)
  4. php ci laravel,PHP 框架 ci 和 laravel 的问题
  5. java 数组map_java中 数组 list map之间的互转
  6. thinkphp5调用shell脚本_thinkphp5.x全版本任意代码执行getshell
  7. debian下为python2.7 安装MySQLdb扩展(mariadb)
  8. laravel5.5的定时任务详解(demo)
  9. React Native 环境搭建步骤
  10. 【大牛系列教学】java商城推荐算法