1:使用template关键字不但可以定义函数模板,而且可以定义类模板。类模板代表一族类,它是用来描述通用数据类型或处理方法的机制,它使类中的一些数据成员和成员函数的参数或返回值可以取任意数据类型。类模板可以说是用类生成类,减少了类的定义和数量。

2:类模板的一般定义形式如下:

template <类型形式参数表> class 类模板名

{

...//类模板体

}

类模板成员函数的定义形式如下:

template <类型形式参数表>

返回类型 类模板名 <类型名表>::成员函数名(形式参数列表)

{

...//函数体

}

其中,template是关键字,类型形式参数表与函数模板的定义相同。类模板的成员函数定义时的类模板名誉类模板定义时要一致。类模板不是一个真是的类,需要重新生成类,生成累的形式如下:

类模板名<类型实在参数表>

用新生成的类定义对象的形式如下:

类模板名<类型实在参数表>对象名

其中,类型实在参数表应与该类模板中的类型形式参数表匹配。用类模板生成的类称为模板类。类模板和模板类不是同一个概念,类模板是模板的定义,不是真是的类,定义中要用到类型参数,模板类本质上与普通类相同,它是类模板的类型参数实例化之后得到的类。

3:类模板中的类型形式参数表可以在执行时指定,也可以在定义类模板时指定。实例代码如下:

// 9.3.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
using namespace std;
template<class T1,class T2>
class MyTemplate
{
T1 t1;
T2 t2;
public:
MyTemplate(T1 tt1,T2 tt2)
{t1 =tt1, t2=tt2;}
void display()
{ cout << t1 << ' ' << t2 << endl;}
};
void main()
{
int a=;
double b=3.1415;
MyTemplate<int ,double> mt(a,b);
mt.display();
}

运行结果:

最新文章

  1. linux vi(vim)常用命令汇总
  2. NOIP2016普及
  3. nginx-502错误,老是提示busy.优化php-fpm如下
  4. 【Java每日一题】20161101
  5. js 获取时间差
  6. SharePoint - 添加图片到Survey的某一问题之上
  7. Android---App Widget(四)
  8. C++的转换构造函数、拷贝构造函数、赋值运算符重载
  9. Mac系统Safari浏览器启动无图模式
  10. 使用redis缓存加索引处理数据库百万级并发
  11. 解压和生成 system.img&amp;data.img ( yaffs2格式)
  12. Apache Common StringUtils工具类
  13. 基于MATLAB的人脸识别算法的研究
  14. 9、flask之SQLAlchemy
  15. [转帖]Gartner预测:2019年全球公有云规模达2143亿美元
  16. gitlab之四: gitlab ssh key 配置
  17. 捕捉JDialog的关闭事件
  18. 【Scheme】Huffman树
  19. 梯度下降法的三种形式-BGD、SGD、MBGD
  20. 解题:CF983B pyramid

热门文章

  1. 深入理解hive(1)
  2. javascript的隐式类型转换(使(a==1&amp;&amp;a==2&amp;&amp;a==3) 成立)
  3. Android Jetpack之WorkManager: 观察结果
  4. ——Java中的collection和collections的区别
  5. C# Monitor Wait()和Pulse()
  6. multiple类型的select option在django后台如何取值
  7. Ceph自动化部署----Ceph-ansible
  8. 公司 vuessr 项目讲解
  9. Oracle笔记(八) 复杂查询及总结
  10. 【转】全志A10/A20 Bootloader加载过程分析