五、使用缺省参数 /7@2Qc2
mMAr8~A=
在C++中函数可以使用缺省参数,例如: B9Q.s
XHM"agrhSQ
W+
'}O<
void PutHzxy?char ?str?int x=-1?int y=-1;? }l?_Cfvu
? if ?x==-1? x=wherex;??? U<Y'.!
if ?y==-1? y=wherey;??? W7=_u+0d
moveto?x?y?? (OcNC/9
PutHz?str? )v{41sM+
.0E4c8R\X
可以有两种方式调用函数PutHzxy(),例如: by]|O
)UZ0gfx
x5z4Yv^
m
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 ZV]e-
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 ,(27p6!
Fg\| e%
\e8*vos
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 s]vJUC,s
Sje0:;;|
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 HL}~W}!j
Y0yO`W4
例如: \seG2vw$
pb6^sA%l
`vxrC&,As
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 {&EZ>r-
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 ^=Ct Aa2
$:E}Nj]{&
六、使用模板和BIDS $%%>n^??
vZeYp
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 >_aio4j}r
"]s|D@^4#b
下面的例子实现了一个存储整型变量的堆栈: {/A)t1nL
)cKtc
nuO3UD3
typedef BI_StackAsVector intstack? $jed{N7Y
main?? hY=
s9\
?instack is? //定义一个整型变量的堆栈 JM-ce8U
for?int I=0?I<10?I++? oUvk2]H
is.push?I??//10个数压栈 <%>n@A
for?I=0?I<10?I++? 7{^4 x#NO
cout< ? b({Nf,(a2
RD$tc~@UB
mOgOHb2
通过语句is.push(),is.pop()可以对堆栈进行操作。