五、使用缺省参数 JNSH'9!n6
3@^b's'S|}
在C++中函数可以使用缺省参数,例如: od`:w[2\
:}[[G2|9
TM$Ek^fQ.
void PutHzxy?char ?str?int x=-1?int y=-1;? mqv!"rk'w
? if ?x==-1? x=wherex;??? I3D#wXW
if ?y==-1? y=wherey;??? S$%Y{
moveto?x?y?? ba"a!#wA
PutHz?str? nyr)d%I{
Fwfe5`9'
可以有两种方式调用函数PutHzxy(),例如: +Heen3
>a5avSn
K0\Wty0
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 3I.0uLjg^
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 d+Bz
pS@p
d$*SVd:
-nKBSls
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 J6*B=PX=(
Ykt(%2L
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 n+;PfQ|
Bl8&g]dk
例如: ~zA{=|I2
+H8;*uZ|k,
;WpPdR2
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 &`A2&mZ
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 Co^a$K
ICI8xP}a?
六、使用模板和BIDS *S>,5R0k
Ea2&7
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 dL!K''24{
p!w}hB598
下面的例子实现了一个存储整型变量的堆栈: wfc[B;K\
oO)KhA?y
k%v/&ojI
typedef BI_StackAsVector intstack? l5d>
YTK+5
main?? ,wlSNb@'
?instack is? //定义一个整型变量的堆栈 >`'>,n|
for?int I=0?I<10?I++? w=H4#a?fc
is.push?I??//10个数压栈 SsF
5+=A
for?I=0?I<10?I++? M[ZuXH}
cout< ? mca9 +v
jw!QjVuRN%
*tZ#^YG{(
通过语句is.push(),is.pop()可以对堆栈进行操作。