五、使用缺省参数 'PHl$f*k
'<M{)?
在C++中函数可以使用缺省参数,例如: uq{beC
?4B`9<j8%
cNH7C"@GVu
void PutHzxy?char ?str?int x=-1?int y=-1;? _G0x3
? if ?x==-1? x=wherex;??? ##{taR8
if ?y==-1? y=wherey;??? DI%saw
moveto?x?y?? r/1(]#kOX
PutHz?str? [
3HfQ
ctUp=po
可以有两种方式调用函数PutHzxy(),例如: YzWz|
<QvOs@i*
@8
6f
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 OKV8zO
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 #1[u(<AS
rs.)CMk53
BuwY3F\-O
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 Xeajxcop#
4R*,VR.K
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 `2snz1>!j
u&NV,6Fj2[
例如: y)pk6d
}M+7T\J!
M?qy(zb
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 $u.z*b_yy
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 D]}G.v1
+d>IHpt
六、使用模板和BIDS .u:GjL'$
a
=QCp4^
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 z:;CX@)*
,s(,S
下面的例子实现了一个存储整型变量的堆栈: ZW}_DT0
8_8l.!~
=Uh$&m
typedef BI_StackAsVector intstack? nR~(0G,H
main?? nK,w]{<wG!
?instack is? //定义一个整型变量的堆栈 hQi2U
for?int I=0?I<10?I++? KSvE~h[#+
is.push?I??//10个数压栈 9iq_rd]
for?I=0?I<10?I++? o@Oqm> ]SS
cout< ? nlYNN/@"
OCUr{Nh
..qCPlK;
通过语句is.push(),is.pop()可以对堆栈进行操作。