C进阶课程讲义_第1页
C进阶课程讲义_第2页
C进阶课程讲义_第3页
C进阶课程讲义_第4页
C进阶课程讲义_第5页
已阅读5页,还剩150页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、传智播客-高级课程讲义清扫僧,传智6.功能模板和类模板前言提供了一个函数模板。所谓的函数模板,实际上是建立一个通用函数,其函数类型和形式参数类型没有详细说明,而是用一个虚拟类型来表示。这个通用函数称为函数模板。任何具有相同功能体的功能都可以被该模板替换。不必定义多个函数,只需在模板中定义一次即可。当调用一个函数时,系统会根据参数的类型来替换模板中的虚拟类型,从而实现不同函数的功能。1)C提供了两种模板机制:函数模板和类模板2)类型参数化,也称为参数模板因此程序(算法)可以从逻辑函数中抽象出来,而要处理的对象(数据)类型可以作为参数传递。摘要:模板参数化了要由函数或类处理的数据类型,并表示参数的

2、多态性,这被称为泛型。模板用于表达具有相同逻辑结构但不同特定数据元素类型的数据对象的一般行为。6.1功能模板6.1.1为什么存在功能模板要求:编写n个函数来交换char类型、int类型和double类型的变量值。案例:#包括使用命名空间标准;/*void myswap(int a,int b)int t=a;a=b。b=t。void myswap(char a,char b)char t=a;a=b。b=t。*/template关键字告诉c编译器我将启动泛型。不要犯任何错误/数据类型测试参数化数据类型模板void myswap(T a,T b)T t。t=a。a=b。b=t。void main

3、()/char a=c;int x=1;int y=2;myswap(x,y);/自动数据类型派生的方法浮动a=2.0浮动b=3.0myswap(a,b);/自动数据类型派生的方法myswap(a,b);/显示类型调用couthello.类型形式参数采取以下形式:类型名T1,类型名T2,类型名Tn或者t1类,t2类,tn级函数模板调用myswap(a,b);/显示类型调用myswap(a,b);/自动数据类型派生6.1.3功能模板和模板功能6.1.4功能模板作为功能参数#包括使用命名空间标准;模板无效排序数组(T *a,T2编号)T tmp。int i,j;对于(I=0;i无效数组(T *a,

4、整数)int I=0;对于(I=0;i(a,num);排序数组(a,num)。/显示类型调用模板函数打印(“排序后 n”);pirntArray(a,num);couthello.使用命名空间标准;模板void myswap(T a,T b)T t。t=a。a=b。b=t。Cout myswap模板函数do(cData,IData);/结论函数模板不提供隐式数据类型转换。这一定是场势均力敌的比赛myswap(cData,IData);/myswap(iData,Cdata);couthello.b?a : b;模板最大温度(温度a,温度b)最大值是多少?a : b;模板最大温度(温度a、温度b

5、、温度c)最大值(T a,T b,T c)(a,b)类型列表标准输出int main(空)printf(2 1是%f ,3);返回0;Gcc编译多个. chello_1.hhello_1.cmain.c一次性编译gcc hello _ 1 . c main . co new hello独立编译gcc-墙-c总管. c -o总管. o你好海湾合作委员会-壁挂总管。o你好_ 1。o-o新你好模板函数拆卸观察订单:g -S 7.cpp -o 7.s。文件“7.cpp”。文本。def _ _ ZL6printfPKcz. scl3。 type32。endef_ZL6printfPKcz:LFB264:

6、cfi_startproc普什尔。cfi_def_cfa_offset 8。cfi_offset 5,-8移动%esp,cfi _ def _ cfa _寄存器5pushl sub $ 36% esp。cfi_offset 3,-12leal 12(, movl - 12()movl-12(, movl4(% esp)movl 8(, movl(% esp)call_mingw_vprintf36美元,特别是波普尔。cfi_restore 3波普尔。cfi_restore 5。cfi_def_cfa 4,4浸水使柔软。cfi_endprocLFE264:lcomm _ZStL8_ioinit,1,1。def _ _ _ main. scl2。 type32。endef。部分。rdata,drLC0:ascii a:%d b:%d 120 LC1:ascii c 1:% c 2:% c 12 0 LC2:ascii“暂停0”。文本。globl_m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论