五、使用缺省参数 ViT$]Nv
uO`YA]
在C++中函数可以使用缺省参数,例如: d~J4&w
wms8z
U5wO;MA
void PutHzxy?char ?str?int x=-1?int y=-1;? 'xp&)gL
? if ?x==-1? x=wherex;??? Q|}Pc>ae
if ?y==-1? y=wherey;??? [I` 6F6
moveto?x?y?? lN^} qg><
PutHz?str? !=c&U.B
{utIaMb]&v
可以有两种方式调用函数PutHzxy(),例如: nK9A=H'Hc
_-I 0f##.
3F0:v,+;
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 \TBY)_[ {
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 "&/&v
I806I@ix
Z-+p+34ytq
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 Y;'7Ek)
Ea*Jl<
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 V qW(S1w
GzUgzj|BN~
例如: 3l@={Ts
~FV
Z0%+,
i;>Hy|
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 \YBY"J
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 q,a|lH
f[/E $r99J
六、使用模板和BIDS #_bSWV4
uU]4)Hp
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 =p)Wxk
Qy @r&
下面的例子实现了一个存储整型变量的堆栈: )#dP:
^25[%aJI
?qQRA|n*
typedef BI_StackAsVector intstack? B6b {hsO
main?? [sY>ac
?instack is? //定义一个整型变量的堆栈 `QlChxd
for?int I=0?I<10?I++? 0 .dSP$e
is.push?I??//10个数压栈 tXTa>Q
for?I=0?I<10?I++? )LwB
cout< ? ~l@SGHx
AjZ@hid
JtU/%s
通过语句is.push(),is.pop()可以对堆栈进行操作。