五、使用缺省参数 /{T&l*'
q_M N
在C++中函数可以使用缺省参数,例如: wu
<0or2
L9b.D<
|v&)O)Jg
void PutHzxy?char ?str?int x=-1?int y=-1;? rRTKF0+
? if ?x==-1? x=wherex;??? /MZ<vnN7f
if ?y==-1? y=wherey;??? 3efOgP=L
moveto?x?y?? n,N->t$i
PutHz?str? (i
"TF2U,<
c&['T+X
可以有两种方式调用函数PutHzxy(),例如: Z@~gN5@,M
3Y#Q'r?
,=/9Ld2w9
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 _O`prX.:B0
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 -(vHy/Hz.
tUu'
gs|
xfk
-Ezv
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 l*CulVX
)gpN
5TDd
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 (zhZ}C,VF
_i=*0Q
例如: >AEp\*
pb!2G/,.[
`M@ESA(e
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 "4b{YWv
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 Z+xkN
O,$*`RZpx
六、使用模板和BIDS ?QP>rm
K1
f1T
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 ?1Nz
,Lc$
g=:o 'W$@
下面的例子实现了一个存储整型变量的堆栈: e$LC
+17!v_4^
ko%mZ0Y
typedef BI_StackAsVector intstack? 7%h;To-<6
main?? uQ=u@qtp
?instack is? //定义一个整型变量的堆栈 2/SUEnaLy_
for?int I=0?I<10?I++? pH~\~
is.push?I??//10个数压栈 ^B"LT>.[
for?I=0?I<10?I++? MN: {,#d0
cout< ? 6 (rm%c
aB%.]bi
rCJ$Pl9R
通过语句is.push(),is.pop()可以对堆栈进行操作。