五、使用缺省参数 wXZ-%,R-D
Th8Q~*v
在C++中函数可以使用缺省参数,例如: S4(IYnwN
S_QDYnF)`
b,@:eVQ7
void PutHzxy?char ?str?int x=-1?int y=-1;? 2`},;i~[
? if ?x==-1? x=wherex;??? bc"{ZL!C
if ?y==-1? y=wherey;??? zH_q6@4
moveto?x?y?? NKGCz|-
9
PutHz?str? D H.ljGb
3dM6zOK
可以有两种方式调用函数PutHzxy(),例如: 2MC\~"L<
81n%2G
TcIUo!:z
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 P*LcWrK
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数
h43k
Y9%yjh
8jZYy!
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 $wN .~"T
)N=wJN1
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 YM;^c%
_7
Oh^X^*I$@
例如: 8%NX)hZyq}
dqe_&C@*O
^g0 Ig2'
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 E`s_Dr}K
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 pQ/:*cd+M
L fi]s
六、使用模板和BIDS }E=kfMu
tyDtwV|
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 )CmuC@ Q"
m0edkt-x
下面的例子实现了一个存储整型变量的堆栈: V4"AFArI
ZN)/doK
4a 5n*6G!
typedef BI_StackAsVector intstack? :vr,@1c
main?? CJC|%i3
?instack is? //定义一个整型变量的堆栈 f&`*x t/
for?int I=0?I<10?I++? \?g%>D:O;
is.push?I??//10个数压栈 (r|T&'yK
for?I=0?I<10?I++? 7q?YdAUz
cout< ? <
d]|5
kal8k-$#
s=$ 7lYX
通过语句is.push(),is.pop()可以对堆栈进行操作。