五、使用缺省参数 Xv8-<Ks
GiV%Hcx
在C++中函数可以使用缺省参数,例如: zTF{ g+
O?JJE8~']
NXU:b"G
S
void PutHzxy?char ?str?int x=-1?int y=-1;? V&M*,#(?
? if ?x==-1? x=wherex;??? }}JMwT
if ?y==-1? y=wherey;??? =?<WCR
C*
moveto?x?y?? `Vb
PutHz?str? ]:<!(
h[ DNhR
可以有两种方式调用函数PutHzxy(),例如: dAh.I3
cz>,sz~i
z-5`6aE9<
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 tnRf!A;m
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 H5=kDkb
5i!Q55Yv=,
3!"N;Q"
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 9\?OV@
>='/%Ad
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 $YL9 vJV
g* q#VmE
例如: P[nc8z[
LL^KZ-
0bg"Q4
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 rs&]46i/p
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 1i76u!{U
B0fOAP1
六、使用模板和BIDS MtLWpi u@[
XO <wK
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 Z*%;;&?
RP4/:sO
下面的例子实现了一个存储整型变量的堆栈: yB b%#GW
uJ!&T
Ms{";qiG
typedef BI_StackAsVector intstack? (vs<Fo|]
main?? N:1aDr;
?instack is? //定义一个整型变量的堆栈 Kg[OUBv
for?int I=0?I<10?I++? 'wND
is.push?I??//10个数压栈 .DCHc,DxA
for?I=0?I<10?I++? 0#,a#P
cout< ? Ys"wG B>
/{i~CGc;"
_4ag-'5
通过语句is.push(),is.pop()可以对堆栈进行操作。