五、使用缺省参数 e&1\'Zq?>
^npJUa
在C++中函数可以使用缺省参数,例如: }C,O
Im)EDTm$
Uc&iZFid2K
void PutHzxy?char ?str?int x=-1?int y=-1;? Uu'dv#4Iw
? if ?x==-1? x=wherex;??? $Q/Ya@o
if ?y==-1? y=wherey;??? :=fvZA WD
moveto?x?y?? iM5vrz`n
PutHz?str? hs(W;tR@W
; LMWNy4
可以有两种方式调用函数PutHzxy(),例如: c1%rV`)]
FjFwvO_.
Fo}7hab
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 ~xDw*AC-
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 x_!ZycEa
z<&m*0WYA
Lh ap4:
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 /!T> b:0
R#eg^7HfX
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 CDdkoajBa
-^SA8y
例如: c\.P/~
,.v7FM^gO
7bF*AYM
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 \#6Fm_b]u
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 A-uB\ L
98=la,^$
六、使用模板和BIDS e:-8k_0|
d,9`<1{9
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 8l>CR#%@C
&y\sL"YL!
下面的例子实现了一个存储整型变量的堆栈: s'u(B]E
E\ th%q,mG
s 3r=mp{
typedef BI_StackAsVector intstack? 4c159wsnQ
main?? 8C7Z{@A
?instack is? //定义一个整型变量的堆栈 DtF}QvA
for?int I=0?I<10?I++? D7?C
is.push?I??//10个数压栈 P8I*dvu _
for?I=0?I<10?I++? H%}IuHhN)
cout< ? Y*LaBxt Q
X_?97iXjx
Zyye%Ly
通过语句is.push(),is.pop()可以对堆栈进行操作。