五、使用缺省参数 \jwG*a
XnZ$%?$
在C++中函数可以使用缺省参数,例如: x<gmDy*
yws'}{8
Kf:!tRE
void PutHzxy?char ?str?int x=-1?int y=-1;? Tse#{
? if ?x==-1? x=wherex;??? GIM/ T4!)
if ?y==-1? y=wherey;??? q$:7j5E
moveto?x?y?? 5_aj]"x
PutHz?str? +PjTT6
QQS*r}>
可以有两种方式调用函数PutHzxy(),例如: YWK0.F,8a
`/PBZnj
;[}OZt
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 miaH,hm
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 \Nt
5TG_
K9#kdo1 2
?Ts]zO%%Z
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 Gk*u^J(
IQPu%n{0v
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 oZiW4z*Wh
k~8-Eu1
例如: m"n74cxS
hn8xs5vN
,2fi`9=\
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 ]ZcivnN#
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 x
vs=T
MW7~=T
六、使用模板和BIDS * @4@eQF
9fEe={ B+
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 H%O\4V2s
Y1-dpML
下面的例子实现了一个存储整型变量的堆栈: <{kPa_`'
_u[tv,
1?Y>Xz
typedef BI_StackAsVector intstack? <-v
zS;
main?? m[}k]PB>
?instack is? //定义一个整型变量的堆栈 Ic2?1<I ZA
for?int I=0?I<10?I++? jw:z2:0~
is.push?I??//10个数压栈 S[zvR9AW&
for?I=0?I<10?I++? $H@SXx
cout< ? &s+l/;3
4=^_VDlpd
~S/oW89
通过语句is.push(),is.pop()可以对堆栈进行操作。