面向对象程序设计 ch8.ppt_第1页
面向对象程序设计 ch8.ppt_第2页
面向对象程序设计 ch8.ppt_第3页
面向对象程序设计 ch8.ppt_第4页
面向对象程序设计 ch8.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

1、在第8章类模板和矢量集装箱C中,可以设计函数模板设计、满足不同类型数据的相同功能要求、设计类模板以表示具有相同处理方法的一组数据对象。类模板也是实现STL库的基础。向量集装箱vector是克服阵列限制的最广泛使用的集装箱之一。牙齿章节简要介绍了使用矢量集装箱类的基本知识,并介绍了使用STL库和范式算法的基本知识。如果将主要内容、类8.1模板8.2矢量集装箱和示例算法8.3矢量应用节目实例、类8.1模板类视为包含特定数据类型的框架,则从类中分离数据类型以形成通用数据类型T。通过允许特定数据类型的类使用数据类型T提供的各种操作,可以避免因类的数据类型不同而发生的重复设计。事实上,牙齿类型不是类,而

2、是类的说明,也称为类模板。编译时将类模板与特定数据类型编译器关联,以创建实际类。由此可见,像使用类模板的计算机编程、烹饪食物一样,只要购买原料,就能做出不同味道的菜肴。8.1.1类模板基础知识1。类模板的组件和语法可以使用类模板定义类,类模板是对象属性的更常见抽象。简单地说,类模板是抽象类。类模板与某些函数模板组件(如声明的方法和参数格式)相同。其中class关键字的意思是“所有内部类型或自定义类型”,但T也可以是结构或类。对于函数模板和类模板,模板分层结构的大部分内容都相同,但在模板宣言后,将出现类的根本区别。要创建类模板,模板参数表后必须有类声明。您可以像在类中使用任何其他类型(如int或

3、double)一样使用模板参数。例如,您可以使用模板参数作为数据成员、返回类型成员函数或成员函数参数等。使用示例8.1类模板的实例。您可以使用typename代替Template /参数T的模板宣言/class class TAnyTemp T x,y。/类型T的个人数据对象public: tanytemp (t x,t y) :x (x),y (y)/类配置函数T getx()return x;/内嵌类成员函数,返回类型T T gety()return y;/内嵌类成员函数,返回类型t;类模板TAnyTemp声明两个专用数据成员:类型均为t的数据成员x和y。类别样板可让您储存两个指定类型的值

4、。宣告类别范本的一般方法如下:template class类别名称/类别主体;2 .类别样板中的物件类别样板也称为参数类型。初始化类模板时,将其传递给特定数据类型会生成模板类。使用模板类时,编译器会自动创建处理特定数据类型的所有成员(数据成员和成员函数)。如果使用上述模板定义对象iObject并将参数T: TAnyTempiObject(321,556)替换为int,则模板将生成类,并指示编译器将所有参数t替换为int,生成的类名称将为TAnyTemp,定义的对象名称将为iObject。传递给两个整数值321和556牙齿对象的配置函数,以初始化该对象的个人数据对象。结果类别的完整名称是TAny

5、Temp,其中包含角括号和int资料类型。您可以从牙齿模板创建另一个实例:TAnyTempdObject(3.1416,5.1552);对象dObject可以存储两个双精度值。这是因为它生成其他实例TAnyTemp。这是与电子无关的类。但是,它是从同一模板生成的。如果在模板中指定实际数据类型,则会创建新类并使用特定类型,而不是模板参数。定义物件的一般格式为类别名称物件名称(规划函数实际参数清单)。类名对象名称/默认值或无引用/计数配置函数模板实例化参数类型包含引用示例8.3格式的数据类型和值。无法从编译器配置函数列表中估计模板实例化参数类型,因此必须明确提供参数类型。示例8.2获得四个数字中最大值的类模板程序。# include using namespace STD,template class Max4 T a,b,c,d;T Max(T a,T b)return (ab)?A:bpublic 3360 Max4(T,T,T,T);t Max(void);Template /成员函数定义模板Max433603360 max4 (tx1,tx2,tx3,tx4) :a

温馨提示

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

最新文档

评论

0/150

提交评论