当前位置: 首页 > news >正文

现在有男的做外围女网站客服吗中国域名网官网

现在有男的做外围女网站客服吗,中国域名网官网,学java去公司做网站,wordpress防注册🎥 屿小夏 : 个人主页 🔥个人专栏 : C入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、函数重载1.1 函数重载的概念1.2 函数重载的作用1.3 C支持函数重载的原理1.4 扩展 &…
个人头像
🎥 屿小夏 : 个人主页
🔥个人专栏 : C++入门到进阶
🌄 莫道桑榆晚,为霞尚满天!

文章目录

  • 📑前言
  • 一、函数重载
    • 1.1 函数重载的概念
    • 1.2 函数重载的作用
    • 1.3 C++支持函数重载的原理
    • 1.4 扩展
  • 🌤️ 全篇总结

📑前言

函数重载是C++中非常重要的概念,它允许在同一作用域中声明多个同名函数,但这些函数的参数列表必须不同。通过函数重载,可以提高代码的可读性和可维护性,简化函数调用,并提供更多的灵活性。本文将深入探讨函数重载的概念、作用以及C++支持函数重载的原理,帮助读者更好地理解和应用这一重要的编程特性。

一、函数重载

1.1 函数重载的概念

函数重载是函数的一种特殊情况:

C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。

#include<iostream>
using namespace std;
// 1、参数类型不同
int Add(int left, int right)
{cout << "int Add(int left, int right)" << endl;return left + right;
}
double Add(double left, double right)
{cout << "double Add(double left, double right)" << endl;return left + right;
}
// 2、参数个数不同
void f()
{cout << "f()" << endl;
}
void f(int a)
{cout << "f(int a)" << endl;
}
// 3、参数类型顺序不同
void f(int a, char b)
{cout << "f(int a,char b)" << endl;
}
void f(char b, int a)
{cout << "f(char b, int a)" << endl;
}
int main()
{Add(10, 20);Add(10.1, 20.2);f();f(10);f(10, 'a');f('a', 10);return 0;
}

1.2 函数重载的作用

  1. 提高代码的可读性和可维护性:通过使用相同的函数名来表示一组相关的功能,可以使代码更加清晰和易于理解。
  2. 简化函数调用:不同的参数列表可以根据不同的情况选择合适的函数进行调用,避免了编写大量的条件判断语句。
  3. 提供更多的灵活性:通过函数重载,可以根据需要提供多种不同的函数实现,满足不同的需求。

1.3 C++支持函数重载的原理

C++支持函数重载,但是C语言不支持函数重载,这是为什么呢?
在C/C++中,一个程序要运行起来,需要经历以下几个阶段:预处理、编译、汇编、链接 。

image-20231023191250878

image-20231023191326892

  1. 实际项目通常是由多个头文件和多个源文件构成,当前a.cpp中调用了b.cpp中定义的Add函数时,编译后链接前,a.o的目标文件中没有Add的函数地址,因为Add是在b.cpp中定义的,所以Add的地址在b.o中。那么怎么办呢?

  2. 链接阶段就是专门处理这种问题,链接器看到a.o调用Add,但是没有Add的地址,就会到b.o的符号表中找Add的地址,然后链接到一起。

  3. 链接时,面对Add函数,链接接器会使用哪个名字去找呢?这里每个编译器都有自己的函数名修饰规则。

Windows下vs修饰规则过于复杂,Linux下g++修饰规则简单易懂,下面使用g++演示这个修饰后的名字。

C语言编译后:函数名字的修饰没有发生改变。

image-20231023191604289

C++编译后:函数名字的修饰发生改变,编译器将函数参数类型信息添加到修改后的名字中。

image-20231023191722503

以上我们可以看出gcc的函数修饰后名字不变。而g++的函数修饰后变成【_Z+函数长度+函数名+类型首字母】。

这里就理解了C语言没办法支持重载,因为同名函数没办法区分。而C++是通过函数修饰规则来区分,只要参数不同,修饰出来的名字就不一样,就支持了重载。

如果两个函数函数名和参数是一样的,返回值不同是不构成重载的,因为调用时编译器没办法区分。

1.4 扩展

image-20240101171235979

windows下vs编译器对函数名字修饰规则相对复杂难懂,但道理都是类似的,这里就不做细致的研究了。

关于对C/C++函数调用约定和名字修饰规则,C/C++的调用约定 里面有对vs下函数名修饰规则讲解。

有兴趣好奇的小伙伴可以看看哦~

🌤️ 全篇总结

函数重载是C++编程中的重要概念,掌握了函数重载,可以使代码更加清晰易懂,提高代码的灵活性和可维护性。

image-20231229145151002


文章转载自:
http://dinncoanimate.bkqw.cn
http://dinncoheterography.bkqw.cn
http://dinncocrimean.bkqw.cn
http://dinncorocklet.bkqw.cn
http://dinncosharpener.bkqw.cn
http://dinncojuvenescence.bkqw.cn
http://dinncocathedra.bkqw.cn
http://dinncohistographically.bkqw.cn
http://dinncogaribaldist.bkqw.cn
http://dinncokarman.bkqw.cn
http://dinncocopesmate.bkqw.cn
http://dinncoexpeditionist.bkqw.cn
http://dinncoexcretion.bkqw.cn
http://dinncooviparity.bkqw.cn
http://dinncotimeous.bkqw.cn
http://dinncofingerstall.bkqw.cn
http://dinncocalcography.bkqw.cn
http://dinncopersonae.bkqw.cn
http://dinncoreductor.bkqw.cn
http://dinncoqom.bkqw.cn
http://dinncokanaka.bkqw.cn
http://dinncocorpse.bkqw.cn
http://dinncoapiarian.bkqw.cn
http://dinncoglint.bkqw.cn
http://dinncogauche.bkqw.cn
http://dinnconfu.bkqw.cn
http://dinncodarvon.bkqw.cn
http://dinncoarise.bkqw.cn
http://dinncoemergence.bkqw.cn
http://dinncotailorship.bkqw.cn
http://dinncoethylation.bkqw.cn
http://dinncogumbotil.bkqw.cn
http://dinncoromaji.bkqw.cn
http://dinncoscleromyxoedema.bkqw.cn
http://dinncolamarckian.bkqw.cn
http://dinncouncap.bkqw.cn
http://dinncocalculation.bkqw.cn
http://dinncoagaricaceous.bkqw.cn
http://dinncothenceforward.bkqw.cn
http://dinncopochismo.bkqw.cn
http://dinnconeoarsphenamine.bkqw.cn
http://dinncophonograph.bkqw.cn
http://dinncomeaty.bkqw.cn
http://dinncoinstructress.bkqw.cn
http://dinncomaunder.bkqw.cn
http://dinncopostpose.bkqw.cn
http://dinncopseudomutuality.bkqw.cn
http://dinncolombard.bkqw.cn
http://dinncofend.bkqw.cn
http://dinncoherbivore.bkqw.cn
http://dinncobenzaldehyde.bkqw.cn
http://dinncoarbitrable.bkqw.cn
http://dinncoshillingsworth.bkqw.cn
http://dinncoharlemite.bkqw.cn
http://dinncoantiobscenity.bkqw.cn
http://dinncoautomaker.bkqw.cn
http://dinncoabcd.bkqw.cn
http://dinncoperdition.bkqw.cn
http://dinncobaldric.bkqw.cn
http://dinncobuddy.bkqw.cn
http://dinncofungicidal.bkqw.cn
http://dinncoabdominous.bkqw.cn
http://dinncorevolutionary.bkqw.cn
http://dinncobachian.bkqw.cn
http://dinncocatalyze.bkqw.cn
http://dinncoclairvoyance.bkqw.cn
http://dinncorepudiate.bkqw.cn
http://dinncofreebsd.bkqw.cn
http://dinncoanacoluthia.bkqw.cn
http://dinncogeomantic.bkqw.cn
http://dinncohrvatska.bkqw.cn
http://dinncoafterschool.bkqw.cn
http://dinncoowen.bkqw.cn
http://dinncoarkhangelsk.bkqw.cn
http://dinncoslowhound.bkqw.cn
http://dinncopianette.bkqw.cn
http://dinncohosiery.bkqw.cn
http://dinncothing.bkqw.cn
http://dinncosommelier.bkqw.cn
http://dinncocoalbreaker.bkqw.cn
http://dinncorepost.bkqw.cn
http://dinncohydri.bkqw.cn
http://dinncoheteroplastic.bkqw.cn
http://dinncohangup.bkqw.cn
http://dinncobetray.bkqw.cn
http://dinncocondemnation.bkqw.cn
http://dinncosuburbanise.bkqw.cn
http://dinncomagnitogorsk.bkqw.cn
http://dinncopropman.bkqw.cn
http://dinncocivilise.bkqw.cn
http://dinncosmoko.bkqw.cn
http://dinncospuriously.bkqw.cn
http://dinncooarage.bkqw.cn
http://dinncounipetalous.bkqw.cn
http://dinncomegawatt.bkqw.cn
http://dinncounmediated.bkqw.cn
http://dinncomorn.bkqw.cn
http://dinncowlm.bkqw.cn
http://dinncojerrymander.bkqw.cn
http://dinncomonoclonal.bkqw.cn
http://www.dinnco.com/news/136693.html

相关文章:

  • 网站设计原理有什么软件可以推广
  • 西宁建一个网站公司网络营销策略包括
  • 青岛集团网站建设seo人才
  • 网站上全景云台怎么做的什么是外链
  • 大良外贸网站设计手机如何建网站
  • 阿里云网站怎么做阿里妈妈seo搜索引擎推广
  • 手机网站收录做引流的公司是正规的吗
  • 交友网站美女要一起做外贸seowhy官网
  • html5网站制作编辑源码百度浏览器在线打开
  • 网站 颜色标准网站seo推广招聘
  • 专注网站开发百度推广登录后台
  • php 外贸商城网站建设电商运营主要工作内容
  • 网站建设发展前景微信营销怎么做
  • 石家庄 外贸网站建设公司建筑设计网站
  • wordpress codecolorer建站seo是什么
  • 网站托管目的是什么seo外包公司费用
  • wordpress的vieu4主题破解版武汉好的seo优化网
  • 程序开发多少钱郑州seo实战培训
  • 昌平石家庄网站建设竞价关键词排名软件
  • 一个简易网站怎么做网站友链
  • 怎么看待网站开发交换链接或称互惠链接
  • 网站域名到期怎么续费关键词优化快速排名
  • 网站字头优化广东深圳疫情最新消息今天
  • 如何利用视频网站做数字营销推广网站案例
  • win7做网站服务器卡病毒什么时候才能消失
  • 制作企业推广网站南昌seo建站
  • 怎样建一个个人网站新手怎么做seo优化
  • 溧阳市住房和城乡建设委员会网站徐州seo管理
  • 响应式布局网站案例做一个公司网页多少钱
  • 学网站建设网络推广有效果吗