c++之函数重载(函数匹配)
时间:2022-05-06
本文章向大家介绍c++之函数重载(函数匹配),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Case
void f();
void f(int);
void f(int, int);
void f(double, double = 3.14);
匹配原则:
1)其形参数量与本次调用提供的实参数量相等
2)每个实参的类型与对应的形参类型相同,或者可以转换成形参的类型;
寻找最佳匹配:
1)该函数每个实参的匹配都不劣于其他可行函数需要的匹配;
2)至少有一个实参的匹配优于其他可行函数提供的匹配;
例子:
a) f(2.56,38);
b) f(38);
c) f(32,0);
d) f(3.9,9.8);
a)可行函数是void f(int, int)与void f(double, double =3.2)。但是最佳匹配不存在,考虑第一个参数 void f(double, double =3.2) 优势明显;
但考虑到第二个实参38时,void f(int, int) 优势明显,具有二义性而拒绝其请求;
b)void f(int);
c)void f(int, int);
d)double f(double, double = 3.2);
tips:函数重载时,应尽量避免强制类型转换。
函数匹配与const实参
Record(Acount&);
Record(const Acount&);
const Acount a;
Acount b;
Record(a); //调用Record(const Acount&);
Record(b);//调用Record(Acount&);
- Android深入四大组件(六)Android8.0 根Activity启动过程(前篇)
- E路阳光
- 解决微信公众平台IP白名单
- 基于Cef内核的多店铺登录器(含源码)
- Android解析ClassLoader(二)Android中的ClassLoader
- 近期开发中遇到的问题总结
- Apache Spark中的决策树
- 数据结构是哈希表(hashTable)
- 【翻译】在Visual Studio中使用Asp.Net Core MVC创建你的第一个Web API应用(一)
- 基于JQuery EasyUI的WebMVC控件封装(含源码)
- Android系统源码分析-JNI
- EntityFrameWork实现部分字段获取和修改(含源码)
- 基于Ado.Net的日志组件
- Do you kown Asp.Net Core -- 配置Kestrel端口
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- [蓝桥杯][基础练习VIP]字符串对比
- [蓝桥杯][算法提高VIP]不同单词个数统计
- 基于spring-boot、grpc、zookeeper的分布式微服务架构
- Codeforces 660C-Hard Process【尺取法练习】
- 杭电5178 (二分练习!)
- Java 13 新特性
- 杭电 1789(贪心思维练习)
- 利用反转函数确定回文串
- Codeforces Round #618 (Div. 2)
- Educational Codeforces Round 82 (Rated for Div. 2)
- [C# 开发技巧]如何防止程序多次运行
- 问题 1117: K-进制数
- Java 11 新垃圾回收器 ZGC
- Red and Black(DFS 深搜练习)
- Codeforces Round #619 (Div. 2)