五、使用缺省参数 UaiDo"i
ba1zu|@w
在C++中函数可以使用缺省参数,例如: ah>;wW!6/
,u-i9`B
fCJ:QK!
void PutHzxy?char ?str?int x=-1?int y=-1;? s+2\uMwf*
? if ?x==-1? x=wherex;??? AH;0=<n
if ?y==-1? y=wherey;??? 6{8qATLR
moveto?x?y?? q*{i /=~
PutHz?str? )Uw
QsP
:[#HP66[O5
可以有两种方式调用函数PutHzxy(),例如: r4@!QR<h
f7)}A/$4+
o )GNV
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 Q6Vy}
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 T#DJQ"$
mLd=+&M
UtIwrR[
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 QzT )PtX
;-~Wfh+
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 ~QJD.'z
!sfOde)$
例如: 8E H#IiP
sycN
u3R0_8
_.w
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 "pa5+N&2-
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 +M$2:[xRT
TW(rK&
六、使用模板和BIDS W @Y$!V<
\S[:
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 , b
,`;I
1`Cr1pH
下面的例子实现了一个存储整型变量的堆栈: Q!7Er
l]%_D*<Y
INby0S
typedef BI_StackAsVector intstack? G5|xWeNgA
main?? N8m|Y]^H#
?instack is? //定义一个整型变量的堆栈 12gcma}
for?int I=0?I<10?I++? PPU,o8E+
is.push?I??//10个数压栈 kG[u$[B
for?I=0?I<10?I++? yBXdj`bV
cout< ? ^:5;H=.
%a<N[H3NV@
SouPk/-B80
通过语句is.push(),is.pop()可以对堆栈进行操作。