五、使用缺省参数 RaAvPIJa |
b0[H{q-z{X
在C++中函数可以使用缺省参数,例如: ?o_D#gG*
eG%Q
3h
ePe/@g1K*
void PutHzxy?char ?str?int x=-1?int y=-1;? dwmZ_m.
? if ?x==-1? x=wherex;??? )}4xmf@gl
if ?y==-1? y=wherey;??? 5+Hw @CY3
moveto?x?y?? z[De?8=)
PutHz?str? (kZ2D
P~u~`eH*
可以有两种方式调用函数PutHzxy(),例如: a'YK1QX
t"FB}%G
Uf<IXx&;
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 K6e_RzP,.w
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 0 A6%!h
Ugv"A;l
NEcE-7aT
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 @M8vPH
btv.M
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 o7t#yw3
wQ~F%rQ$
例如: '{:lP"\,L
Bey|f/
<
w$[ck=
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 ys Td'J
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 \,yX3R3}.~
rT28q.
六、使用模板和BIDS =Vi>?fWpn=
mNnt9F3Eq
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 W5zlU2
=aJb}X
下面的例子实现了一个存储整型变量的堆栈: <ly.l]g
9xIz[`)i.
Nt
P=m
@
typedef BI_StackAsVector intstack? I9E]zoj8
main?? Nk&$b
?instack is? //定义一个整型变量的堆栈 J G3#(DVc;
for?int I=0?I<10?I++? 6YpP/
K
is.push?I??//10个数压栈 jY ~7-
for?I=0?I<10?I++? ylBjuD+
cout< ? j;_
>,\
x/xd
6xAR:
通过语句is.push(),is.pop()可以对堆栈进行操作。