五、使用缺省参数 Y3J;Kk#AH
y?1<7>L5~
在C++中函数可以使用缺省参数,例如: =cN!h"C[
_=\=oC
/e0cx:.w
void PutHzxy?char ?str?int x=-1?int y=-1;? \h&ui]V
? if ?x==-1? x=wherex;??? :1O1I2L0
if ?y==-1? y=wherey;??? /V%]lmxQ
moveto?x?y?? Z;XiA<|
PutHz?str? AvNU\$B4aG
<P"4Mk7`s
可以有两种方式调用函数PutHzxy(),例如: ;& PK6G
$^1L|KgXp
G L> u3K
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 0D*uZ,oBEw
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 RC']"jpW
*xl930y
l`}Ag8Q
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 <\If:
EC6Q<&]Iw
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 Wveba)"$
ydyGPZt
例如: L`!M3c@u
v-J9N(y"
x`#|8
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 yQXHEB
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 RXj6L~vs5_
VZJ[h{ 6
六、使用模板和BIDS ^S'#)H-8C3
Rt{`v<
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 W?B(Jsv
BIr24N
下面的例子实现了一个存储整型变量的堆栈: K[XFJ 9
=`l).GnN2`
{_]'EK/w
typedef BI_StackAsVector intstack? 5"]t{-PD
main?? jr9/
?instack is? //定义一个整型变量的堆栈 y+PiH
for?int I=0?I<10?I++? -a}d
@&
is.push?I??//10个数压栈 dK45&JHoW^
for?I=0?I<10?I++? HcrI3v|6
cout< ? ]-D;t~
1;4]
HNI
F9|\(St &
通过语句is.push(),is.pop()可以对堆栈进行操作。