欢迎来到天天文库
浏览记录
ID:33932473
大小:1.25 MB
页数:54页
时间:2019-03-01
《c++类模板与stl编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++语言程序设计教第10章类模板与STL编程程第10章类模板C+第10章类模板+语言学习目标程序设计教1.理解类模板的概念;程2.掌握类模板的定义、实例化过程,会运用类模板;3.掌握栈类模板、链表类模板的使用;4.理解STL编程的基本思想;第15.掌握STL容器的使用;06.熟练使用STL算法;章7.理解STL函数对象;类模板C++语10.1类模板言程模板是C++语言的重要特征,它能够显著提高编程效率。利用序设C++的函数模板和类模板,能够快速建立具有类型安全的类库集合和计函数集合,进行大规模软件开发,并提高软件的通用性和灵活性。教C++的标准模板库(standardtemp
2、latelibrary,简称STL)编程完全程依赖模板的实现。类模板是能根据不同参数建立不同类型成员的类。类模板中的数第据成员、成员函数的参数、成员函数的返回值可以取不同类型,在实10例化成对象时,根据传入的参数类型,实例化成具体类型的对象。类章模板也称模板类。类模板C++1.类模板的定义语言程类模板定义的语法为:序设计template<模板参数表>教class类名程{成员名;};第1其中:0template为模板关键字。章模板参数表中的类型为参数化(parameterized)类型,也称可变类型,类型名为类class(或typename);模板参数表中的类型也可包含普通类型
3、,普通类型的参数用模来为类的成员提供初值。板类模板中的成员函数可以是函数模板,也可以是普通函数。C+1.类模板的定义+语例如,下面定义了一个模板类Student,为了增强类的适用性,将学号设言计成参数化类型,它可以实例化成字符串、整型等;将成绩设计成参数化类型,程它可以实例化成整型、浮点型、字符型(用来表示等级分)等;序设template//TNO,TScore为参数化类型计classStudent教{程private:TNOStudentID[num];//参数化类型数组,存储姓名TScorescore[num];//
4、参数化类型数组,存储分数public:TNOTopStudent()//普通函数第{1returnStudentID[0];}0intBelowNum(TScoreascore)//函数模板章{return0;类}模voidsort()//普通函数板{}};C++1.类模板的定义语言程模板类的成员函数还可以在类外定义,其语法如下::序设计template<模板参数表>教类型类名<模板参数名表>∷函数名(参数表)程{函数体;}第10其中:章模板参数表与类模板的模板参数表相同。类模板参数名表列出的是模板参数表中参数名,顺序与模板参数表中的顺序一致。模板C+1.类模板的定义+模板类
5、Student的成员函数在类外实现如下:语模板类的成员函数还可以在类外定义,其语法如下:言template程classStudenttemplate<模板参数表>序{类型类名<模板参数名表>::函数名(参数表)private:设{TNOStudentID[num];计函数体;TScorescore[num];教public:}程TNOTopStudent();intBelowNum(TScoreascore);其中:voidsort();};模板参数表与类模板的模板参数表相同;template<模板参数名表列出的是模板
6、参数表中参数名,顺序与模板参数表中的顺序一致;classTNO,classTScore,intnum>第intStudent::BelowNum(TScoreascore)1{例如,模板类Student的成员函数在类外实现如下:0return0;章}template类voidStudent::sort()模{板}templateTNOStudent::TopStudent
7、(){returnStudentID[0];}C2.类模板的实例化++一个类模板是具体类的抽象,在使用类模板建立对象时,才根据给定的模板语参数值实例化(专门化)成具体的类,然后由类建立对象。与函数模板不同,类模板言实例化只能采用显式方式。程类模板实例化、建立对象的语法如下:序设类模板名<模板参数值表>对象1,对象2,…,对象n;计教其中:程模板参数值表的值为类型名,类型名可以是基本数据类型名,也可以是构造数据类型名,还可以是类类型名。模板参数值表的值还可以是常数表达式,以初始
此文档下载收益归作者所有