- 53
- 0
- 约4.09千字
- 约 19页
- 2018-10-31 发布于天津
- 举报
第十九章类模板.ppt
有的时候某些类型不能直接用来实例化类模板,或者说直接实例化不能满足需要,此时就要针对这种类型进行的特化,包括完全特化和偏特化。 类模板的特化是为了针对特殊的类型,进行特殊的处理。 小结 本章主要讲述了类模板的概念及类模板的定义和实例化。C++中的类模板与普通类相似,可以定义自己的函数成员、静态成员、友元函数等。类模板有特化和今偏特化两种,要注意在此之前需要普通类模板的定义。 习题 【题目271】分析以下程序的执行结果。 #includeiostream template class T class Sample { T n; public: Sample(T i){n=i;} void operator++(); void disp(){coutn=nendl;} }; template class T void SampleT::operator++() { n+=1; // 不能用n++;因为double型不能用++ } int main() { Samplechar s(a); s++; s.disp(); } 【分析】该试题主要考查类模板的使用方法。在上述程序段中,Sample是一个类模板,由它产生模板类Samplechar,通过构造函数给n赋初值,通过重载++运算符使n增1,这里n由a增1变成b。因此,该试题的输出结果为n=b。 【题目272】编写一个使用类模板对数组进行排序、查找和求元素和的程序。 【分析】该试题主要考查类模板的实现问题。在对数组的操作中,排序、查找和求元素和都是使用非常频繁的操作,为了对各种数据类型的数组都能进行上述几种操作,有必要编写一个类模板来实现。改试题可以设计一个类模板templateclass Tclass Array,用于对T类型的数组进行排序、查找和求元素和,然后由此产生模板类Arrayint和Arraydouble。 【题目273】分析以下程序的执行结果 #includeiostream templateclass T class Sample { T n; public: Sample(){} Sample(T i){n=i;} SampleToperator+(consta SampleT); void disp(){coutn=nendl;} }; templateclass T SampleTSampleT::operator+(const SampleTs) { static SampleT temp; temp.n=n+s.n; return temp; } int main() { Sampleints1(10),s2(20),s3; s3=s1+s2; s3.disp(); } 【分析】该试题主要考查类模板的使用方法和重载运算符的实现。在上述程序段中,Sample为一个类模板,产生一个模板类Sampleint,并建立它的三个对象,调用重载运算符+实现s1与s2的加法运算,将结果赋给s3。读者可以看出,重载后的运算符+能够实现两个对象直接的加法运算,因此,该程序段的输出为s=30。 【题目274】设计一个数组类模板ArrayT,其中包含重载下标运算符函数,并由此产生模板类Arrayint和Arraychar,使用一些测试数据对其进行测试。 【分析】该试题主要考查类模板的实现以及在主函数中的实例化。此处首先设计一个数组类模板,该模板中包含下标运算符的重载函数,读者可以选择在类外实现该函数的定义。在主函数中定义整型数组和字符型数组并初始化,将类模板分别实例化为整型和字符型,查看输出结果。 【题目275】已知一个Sample类模板的私有数据成员为T n,在该类模板中设计一个operator==重载运算符函数 ,用于比较各对象的n数据是否相等。 template class T class Sample { T n; public: Sample(T i){n=i;} int operator==(Sample ); }; 【分析】该试题主要考察在类模板中声明的函数在类外进行实现的问题。根据前面的学习,读者知道在类模板中声明的函数如果在类外进行具体定义,需要加上模板名template class T和作用域运算符,表示该成员函数的归属。==运算符的重载即实现比较类中似有成员n的值是否相等,通过简单的分支语句即可实现。 【核心代码】 template class T int SampleT::operator==(Sample s) { if(n==s.n) return 1; else return 0; } 【题目276】设计一个模板类Sample,用
您可能关注的文档
最近下载
- 徐悲鸿简介(新).doc VIP
- 鼎捷ERP报表GR凭证报表基础知识.pptx VIP
- 党员在改作风树新风方面存在的问题及整改措施.docx VIP
- 湖南省岳阳市汨罗市新市集团2024年数学小升初试卷.pdf VIP
- 二年级下册全册劳动教案.doc VIP
- 云南省中职职教高考职业技能考试经济管理类样卷.pdf VIP
- (新版)多旋翼无人机超视距驾驶员执照参考试题核心题库.pdf VIP
- 湘科版(2024)三下信息科技_6单元_活动3 巧手剪出好作品 课件.pptx VIP
- 超星尔雅学习通《劳动通论》章节测试答案.pdf VIP
- 2025年生物医药中试生产基地生物制药废弃物资源化利用可行性分析报告.docx
原创力文档

文档评论(0)