五、使用缺省参数 p ?HODwZ
B`4[@$
在C++中函数可以使用缺省参数,例如: "F+Wo&
6L6 Lk
|7CH
void PutHzxy?char ?str?int x=-1?int y=-1;? iK"j@1|
? if ?x==-1? x=wherex;??? YJ5;a\QxN
if ?y==-1? y=wherey;??? Z6cG<,DQ
moveto?x?y?? /rNY;qXM
PutHz?str? $Q:5KNF+p
6wWA(![w"
可以有两种方式调用函数PutHzxy(),例如: Zv=p0xH
K6,5C0
?nFT51t/4
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 pg~`NN
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 FVsNOU
S)"5X)mq
9tS&$-
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 b)u9#%Q
+{/zP{jH
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。
FFgy=F
LwUvM
例如: @ %z5]w
IEzZ$9,A5
)^!-Aj\x
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 $`'^&o;&f
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 $Mx.8FC +
,Z%!38gGsu
六、使用模板和BIDS ji(S ?^
>t8eVMMa
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 B`hxF(_p/
_>5BFQ_
下面的例子实现了一个存储整型变量的堆栈: UhCd,
CRWO R pP
O)5-6lm
typedef BI_StackAsVector intstack? j.CC.[$g
main?? cf@#a@7m9
?instack is? //定义一个整型变量的堆栈 )K2n!Fbd
for?int I=0?I<10?I++? [uRsB5
is.push?I??//10个数压栈 &F#X0h/m=
for?I=0?I<10?I++? v *:m|wl
cout< ? c2"eq2'BS
t9pPG {1
5<w0*~Zd~
通过语句is.push(),is.pop()可以对堆栈进行操作。