一、C++中的函数重载:
1、函数重载的概念:
用同一个函数名定义不同的函数
当函数名和不同的参数搭配时函数的含义不同
注意:在c语言中是没有函数重载这个概念的。
代码示例演示:
上面在c++编译器里面编译时没有问题的,如果放在c语言编译器里面编译是会报错的:
所以说c语言里面不支持函数重载。
2、函数重载至少要满足下面的一个条件:
参数个数不同
参数类型不同
参数顺序不同
比如下面两个函数可以构造重载函数吗?
答案肯定是可以构造重载函数的,读者可以自己试试(这个比较好理解)。
3、当函数默认参数遇上函数重载会发生什么?
例如下面的两个函数:
到底会发生啥,我们还是看下面这个实验:
运行结果:
从上面报错的结果里面有一个单词ambiguous(意思是梦棱两可的),也就是说默认参数这种使用时不允许的。
4、C++编译器调用重载函数的准则:
将所有同名函数作为候选者
尝试寻找可行的候选函数:
精确匹配实参
通过默认参数能够匹配实参
通过默认类型转换匹配实参
匹配失败:
最终寻找到的候选函数不唯一,则出现二义性,编译失败
无法匹配所有候选者,函数未定义编译失败
5、函数重载的注意事项:
重载函数在本质上是相互独立的不同函数
重载函数的函数类型不同
函数返回值不能作为函数重载的依据
函数重载是由函数名和参数列表决定的
代码测试:
运行结果:
从输出结果我们可以看出这两个函数的入口地址不一样,这表明这两个函数是不同的函数。
6、小结:
函数重载是c++中引入的概念
函数重载的本质是相互独立的不同函数
c++中通过函数名和函数参数确定函数调用
审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
用arm-xxx-gcc编译器进行编译,*.cpp文件会使用arm-xxx-g++编译器进行编译,STM32CubeMX生成文件都是*.c源文件,在不修改文件名后缀情况下,我现在是想在*.c源文件中使用c++特性(比如
发表于 04-25 06:15
什么是C++虚函数? 应该怎么定义? 主要用途是什么?
发表于 11-08 06:58
,随后不久我便意识到犯下了一个错误。 我们先来看看重载与重写的概念: 重载: 重载的条件如下: 1.一个类里面 2.方法名字相同 3.参数不同 而参数不同可分为:参数类型不同,参数个数不同。而上一次推送中,对on_created
发表于 11-03 15:13
•293次阅读
,**《iTOP-3568开发板QT学习手册》**带你打通QT的任督二脉。
第1章 C++基础
1.1 C++语言特点
1.1.1 C++程序编译
1.1.2
发表于 10-25 10:29
章 指针第 7 章 自定义数据类型 第 3 篇 基于对象的程序设计第 8 章 类和对象第 9 章 关于类和对象的进一步讨论第 10 章 运算符重载 第 4 篇 面向对象的程序设计第 11 章 继承与派生第 12 章 多态性与虚函数第 13 章 输入输出流第 14 章
发表于 10-09 07:26
在计算机程序设计中,运算符重载(英语:operator overloading)是多态的一种。这里,运算符(比如+,=或==)被当作多态函数,它们的行为随着其参数类型的不同而不同。运算符并不一定总是符号。
发表于 09-20 17:14
•417次阅读
函数迭代是数学中一个非常重要和有趣的主题,它在不同的领域有着不同的应用和着眼点。在动力系统中,函数迭代可以揭示复杂系统的演化规律和混沌现象;
发表于 08-30 10:11
•754次阅读
描述了VS环境下,通过C++生成dll的方法,测试回调函数
发表于 08-29 16:05
•643次阅读
今天在学一些C++ STL容器,看到sort函数允许自定义排序规则,小小地实操了一下。
发表于 07-22 10:12
•1057次阅读
C++中std::tie函数的作用就是从元素引用中生成一个tuple元组,其在头文件中定义
发表于 07-18 17:28
•573次阅读
重载函数调用操作的类,其对象常称之为函数对象。
发表于 07-17 09:46
•356次阅读
一、什么是函数的重载
两个以上的函数,具有相同的函数名,通过参数的类型和参数的个数不同。编译器自行匹配,自动确定调用哪一个函数
二、
发表于 06-28 13:54
机器学习和深度学习中的模型都是遵循数学函数的方式创建的。从数据分析到预测建模,一般情况下都会有数学原理的支撑,比如:欧几里得距离用于检测聚类
发表于 06-14 10:01
•792次阅读
factory机制本质是对SystemVerilog中new函数的重载
发表于 05-26 14:55
•636次阅读
c++常见函数集包括:线性代数方程组的解法、插值、数值积分、特殊函数、函数逼近、随机数排序、特征值问题、数据拟合、方程求根和非线性方程组的解法、函数
发表于 05-09 14:52
•1次下载
评论