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

网站建设研究方法美术馆网站建设

网站建设研究方法,美术馆网站建设,直接打开百度,东莞英文网站设计今天介绍的是cpp中的缺省参数以及函数重载的知识。 首先我们先看看缺省参数#xff1a; 缺省参数 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时#xff0c;如果没有指定实 参则采用该形参的缺省值#xff0c;否则使用指定的实参。 例如#…今天介绍的是cpp中的缺省参数以及函数重载的知识。 首先我们先看看缺省参数 缺省参数 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时如果没有指定实 参则采用该形参的缺省值否则使用指定的实参。 例如 #includeiostream using namespace std; int add(int num1 1,int num2 1) {int a num1 num2;return a; } int main() {int ret add();cout ret endl;return 0; } 正如代码中所写的我在调用add函数的时候并没有给add函数传输值但是代码的运行结果是这样的 这就是缺省参数的作用。它可以让我们在暂时没有想法给函数传什么参数时可以先给函数有一个运行结果。在后面我们可以用来做一些初始化的工作等等。 缺省参数可以分为全缺省和半缺省 int add(int num1 1,int num2 1) {int a num1 num2;return a; } 全缺省是指需要传入的所有参数都有一个缺省值。 void func(int a,int b 10,int c 20 ) {cout a endl;cout b endl;cout c endl;}半缺省就是有的参数没有给缺省值。 缺省参数中也有一些需要我们注意的地方比如说 1. 半缺省参数必须从右往左依次来给出不能间隔着给 2. 缺省参数不能在函数声明和定义中同时出现 当我们在声明和定义中同时缺省时会有以上报错。 所以我们可以将定义中的缺省值删掉保留定义中的缺省值。 3. 缺省值必须是常量或者全局变量 4. C语言不支持编译器不支持 函数重载 函数重载是函数的一种特殊情况C允许在同一作用域中声明几个功能类似的同名函数这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同常用来处理实现功能类似数据类型 不同的问题。   #includeiostream 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; } 为什么C支持函数重载而C语言不支持函数重载呢 在C/C中一个程序要运行起来需要经历以下几个阶段预处理、编译、汇编、链接。 1. 实际项目通常是由多个头文件和多个源文件构成而通过C语言阶段学习的编译链接我们 可以知道【当前a.cpp中调用了b.cpp中定义的Add函数时】编译后链接前a.o的目标 文件中没有Add的函数地址因为Add是在b.cpp中定义的所以Add的地址在b.o中。那么 怎么办呢 2. 所以链接阶段就是专门处理这种问题链接器看到a.o调用Add但是没有Add的地址就 会到b.o的符号表中找Add的地址然后链接到一起。(老师要带同学们回顾一下) 3. 那么链接时面对Add函数链接接器会使用哪个名字去找呢这里每个编译器都有自己的 函数名修饰规则。 4. 由于Windows下vs的修饰规则过于复杂而Linux下g的修饰规则简单易懂下面我们使 用了g演示了这个修饰后的名字。 5. 通过下面我们可以看出gcc的函数修饰后名字不变。而g的函数修饰后变成【_Z函数长度 函数名类型首字母】 结论在linux下采用gcc编译完成后函数名字的修饰没有发生改变。  而在c的编译环境下呢 结论在linux下采用g编译完成后函数名字的修饰发生改变编译器将函数参 数类型信息添加到修改后的名字中。 6. 通过这里就理解了C语言没办法支持重载因为同名函数没办法区分。而C是通过函数修 饰规则来区分只要参数不同修饰出来的名字就不一样就支持了重载。 7. 如果两个函数函数名和参数是一样的返回值不同是不构成重载的因为调用时编译器没办 法区分。
http://www.hkea.cn/news/14367797/

相关文章:

  • 厦门首屈一指的网站建设公司免费的云电脑
  • 中国空间站有多大站酷网电脑版
  • 企业网站建设计划聚牛网站建设公司
  • 网站数据分析案例濮阳网站建设优化
  • php禁止ip访问网站网站建设需要什么设备
  • 首页关键词是不是一个网站的核心关键词所在浙江网站建设上市公司
  • 辽宁城乡住房建设厅网站首页wordpress旋转
  • wordpress建网站培训求个网站直接能看的
  • 企业网站用什么系统好教育wordpress模板下载地址
  • 北京网站建设公司排行网站开发周期
  • 飓风算法受影响的网站有哪些app建设网站
  • 在线免费做logo印章网站长春网络推广公司小技巧
  • 网站收录很好没排名wamp wordpress局域网
  • 花店营销策略超市门户网站建设学校网站建设责任书
  • 网站翻书效果门户网站阳光警务执法办案查询
  • 游戏网站建设与策划方案做网站 收费
  • 网站建设安全协议做网页设计可以参考哪些网站
  • 企业网站建设的注意事项龙岗网站建设价格
  • 免费观看行情软件网站进入焦作住房和城乡建设厅网站
  • 建网站要自己买服务器吗微信订阅号 网站开发
  • 韩版做哪个网站好更合网站制作公司
  • 如何设置网站标题如果使用自己电脑做网站
  • 网站开发专业成功人士如何做摄影网站
  • 桂林北站到象鼻山多远网站建设认准猪八戒网
  • 北京住房和城乡建设部网站百度扫一扫网页版
  • 北京做网站多少钱合理医院网站建设的规划方案
  • 项城网站建设绍兴市工程建设网站
  • 艺术学校示范校建设专题网站广西贵港建设集团有限公司网站
  • 超市网站模板wordpress头像缓存到本地
  • 网站跳出率 报告网站建设实训课实训心得