C++函数重载详解及实例代码
更新时间:2020年4月25日 17:34 点击:2064
C++函数的重载
定义
在同一个作用域中,函数名相同,函数的参数列表不同的函数之间构成重载关系,在不同作用域中的同名函数遵循标识符隐藏的原则
ATTENTION:重载与函数的返回值类型无关,因为声明一个函数不需要返回类型,所以无法用来区分哪个函数
常函数和普通成员函数之间构成重载,重载时常对象调用常成员函数,一般对象调用一般成员函数
class A{ … public: void getVal()const{…} void getVal(){…} }; int main(){ const A a; A b; a.getVal(); //常函数 b.getVal(); //普通成员函数 }
不同namespace中的函数也可以通过名字空间指令/名字空间声明的方式让他们在同一个作用域,进而构成重载关系
//overloaded functions in different namespaces
#include<iosteam> using namespace std; namespace ns1{ void fa(int i){cout<<"in ns1:i="<<i<<endl;} } namespace ns2{ void fa(double d){cout<<"in ns2:i="<<d<<endl;} } int main(){ //使用namespace 指令的方式 using namespace ns1; using namespace ns2; fa(10); fa(3.14); return 0; }
重载匹配原则
完全匹配>常量转换/常量匹配>升级转换>标准转换>自定义转换>省略号匹配
Note:编程中,尽量做到完全匹配,如果实在不能完全匹配,一般会根据上述原则进行选择
重载原理
C++编译器是通过对函数进行换名,将参数列表信息体现在底层函数名中,从而实现函数的重载,汇编函数名按照 <作用域+返回类型+函数名+参数列表> 的方式体现在汇编中,eg:_Z4showii:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
上一篇: socket多人聊天程序C语言版(一)
下一篇: C语言 动态内存分配的详解及实例
相关文章
- 本篇文章是对C#中方法重载进行了详细的分析介绍,需要的朋友参考下...2020-06-25
- 这篇文章主要为大家详细介绍了C#中重载与重写的区别,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了C#运算符重载用法,实例分析了C#中运算符重载的基本实现与使用技巧,需要的朋友可以参考下...2020-06-25
- 本篇文章介绍了,在c++中函数的默认参数的使用说明分析。需要的朋友参考下...2020-04-25
- 这篇文章主要介绍了C++中重载、重写(覆盖)和隐藏的区别,是C++面向对象程序设计非常重要的概念,需要的朋友可以参考下,希望能够给你带来帮助...2021-09-18
- 这篇文章主要介绍了C#通过PInvoke调用c++函数的备忘录的实例以及相关知识点内容,有兴趣的朋友们学习下。...2020-06-25
- 虽然不能直接实现一对下标操作符重载,但是我们可以间接模拟。思路是这样的,先通过单下标操作返回一个具有下标操作能力的左值,对左值进行下标操作,两个下标操作表达式联立就实现了双下标操作...2020-04-25
- 这篇文章主要介绍了python 模块重载的五种方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-04-23
- 今天小编就为大家分享一篇关于C++实践Time类中的运算符重载参考方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...2020-04-25
- 这篇文章主要介绍了C#中多态、重载、重写区别,采用实例较为通俗易懂的分析了多态、重载的重写的概念与用法,对于C#初学者有非常不错的借鉴价值,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了java中的重载和重写的区别。具有一定的参考价值,下面跟着小编一起来看下吧,希望能够给你带来帮助...2021-11-02
- 这篇文章主要给大家介绍了关于C++中四个默认成员函数与运算符重载的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来跟着小编一起学习学习吧。...2020-04-25
- 这篇文章主要介绍了C++中构造函数重载的相关资料,十分的详细,需要的朋友可以参考下...2020-04-25
- 下面小编就为大家带来一篇浅谈C++重载、重写、重定义。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
- 在C++中,我们也能够把具有相同功能的函数整合到一个函数上,而不必去写好多个函数名不同的函数,这叫做函数的重载。以下是对C++中的函数重载进行了详细的分析介绍,需要的朋友可以过来参考下...2020-04-25
- 这篇文章简单介绍了C++编程中的运算符重载,是C++入门学习中的基础知识,需要的朋友可以参考下...2020-04-25
- 本篇文章是对C++输入输出操作符重载进行了详细的分析介绍,需要的朋友参考下...2020-04-25
C++之CNoTrackObject类和new delete操作符的重载实例
这篇文章主要介绍了C++之CNoTrackObject类和new delete操作符的重载实例,是C++程序设计中比较重要的概念,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了c# 运算符重载的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-20
- 以下是对C++运算符重载 成员函数与友元函数进行了介绍,需要的朋友可以过来参考下...2020-04-25