函数重载遇上函数默认值会发生什么?----二义性
来源:互联网 发布:淘宝达人资历说明案例 编辑:程序博客网 时间:2024/06/01 03:58
#include <iostream>using namespace std;int func(int a,int b,int c = 0){ return a*b*c;}int func(int a,int b){ return a+b;}int main(){ cout << "func(1,2): " << func(1,2) << endl; return 0;}
报错:两个函数都可以执行,但不知道调用哪一个,编译不通过!
总结:在做产品时,如果使用“默认参数”就不要使用“函数重载”。二选一,不要同时使用,防止二义性。
编译器调用重载函数的准则:
1.将所有同名函数作为候选者;
2.尝试寻找可行的候选者;
(1)精确匹配实参类型
(2)通过默认参数能够匹配实参类型
(3)通过默认类型转换匹配实参
匹配失败:
(1)最终寻找可行的候选函数不唯一,出现二义性,编译失败;
(2)无法匹配所有候选者,函数未定义,编译失败。
0 0
- 函数重载遇上函数默认值会发生什么?----二义性
- 函数模版遇上函数重载会发生什么呢?
- 重载遇上函数指针
- 当管理遇上AI,会发生什么
- 函数 默认值、重载、内联
- 当区块链遇上人工智能,会发生什么?
- 当函数模版遇上函数重载
- 当函数重载遇上函数指针
- [C/C++] main函数执行前后还会发生什么
- C++ 默认值函数参数 重载
- c++拷贝构造函数遇上等号重载
- makefile函数,函数名部分使用变量代替会发生什么?
- Effective C++(9) 构造函数调用virtual函数会发生什么
- (C/C++学习笔记)函数模板遇上函数重载
- 当函数重载遇到函数默认值、函数指针
- 通过一个非法的指针或者NULL指针调用成员函数会发生什么?
- C++学习:虚函数中重载函数设定默认值
- c++之函数特性 重载 内联 函数默认值
- Android 获取固定的dip、dp值
- Java开发必备:java帮助文档网址下载或在线帮助
- EventBus
- 为什么apache要设置虚拟主机
- 103.leetcode Binary Tree Zigzag Level Order Traversal(medium)[二叉树 栈]
- 函数重载遇上函数默认值会发生什么?----二义性
- HDU 2425 Hiking Trip(bfs+优先队列)
- 大量POI的解决方案2
- mac 下virtual box 安装多台centOs并配置网络集群
- 延迟光照技术及其在虚拟漫游中的识应用
- 吸血鬼数字(JAVA)
- Native.js for Android
- js的navigator对象
- Android Activity SharedPreferences