找回密码
 注册

QQ登录

只需一步,快速开始

模板的概念

[复制链接]
发表于 2008-9-29 20:18:45 | 显示全部楼层 |阅读模式
<P>模板我们见过不少,就象编写网页,设计了一个页面模板后,我们就可以用它来编写同样风格的页面,只要把模板中相应可编辑区的文字更新一下就可以了,这就减少了许多的重复工作量。</P>
0 d- x& d* U/ r  {<P>而C++中的模板也正是这样,它可以使我们编写程序时减少许多重复的工作量,<FONT color=#ff0000>C++支持两种模板</FONT>,<FONT color=#0000ff>一种是函数模板</FONT>,<FONT color=#0000ff>一种是类模板</FONT>。模板由程序员定义,是供C++编译器来使用的,由它根据实际的类型参数来替代模板中的相应类型。</P>1 P  t: Z: X( [1 K- I  Z2 m) F
<P>要识记的部分有:</P>
8 V0 c4 p) g1 f5 U2 G- P4 `" w* P<P><FONT color=#0000ff>模板</FONT>可分为哪<FONT color=#0000ff>两种类型</FONT>,一是<FONT color=#0000ff>有约束的模板</FONT>,二是<FONT color=#0000ff>无约束的模板</FONT>。对于函数模板而言,对类型没有任何要求,只需是同一类型的变量就可以的模板就是无约束的函数模板。而在对处理的数据有要求的函数模板就是有约束的函数模板,比如要求相应的数据是可序列化的(比较大小).</P>9 j/ ]; ?2 J) h# [6 q( ?2 F: {7 h9 Y
<P><FONT color=#0000ff>定义模板的方法</FONT>:函数模板的格式为:</P>
% f1 k% u! k: r$ t6 [! d- u2 d<P>template &lt;class T&gt;</P>
$ d- J9 x. b2 J! I" c<P>T fun (T a, T b ...)</P>
) ?6 P% D, |! k* U/ _( J, v" }" J<P>{ //...}</P>
5 K5 Q9 a2 ?& Q2 a+ l) }<P>其中的class与类没有任何关系,其意可理解为"用户定义或固有的类型:"(当然这个类型也可以是一个类),注意是用尖括号括起来的。这个形式基本上就是把一般函数的类型标识符改成 class后面的标识符T,然后在这个函数前面加一个模板的标识符,这就告诉编译器,以下的函数是个函数模板 。到时候要用相应的类型来替换这个T。这和我们创建文档模板也差不多。</P>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|本地广告联系: QQ:905790666 TEL:13176190456|Archiver|手机版|小黑屋|汶上信息港 ( 鲁ICP备19052200号-1 )

GMT+8, 2025-4-15 08:36

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表