五、使用缺省参数 U!*M*s
naR0@Q"\h
在C++中函数可以使用缺省参数,例如: jYmR
FW G6uKv
[`"ZjkR_J
void PutHzxy?char ?str?int x=-1?int y=-1;? biU^[g("
? if ?x==-1? x=wherex;??? ic#`N0s?
if ?y==-1? y=wherey;??? 2Gz}T _e
moveto?x?y?? BS /G("oZ[
PutHz?str? j;%-fvd;
INcg S MM
可以有两种方式调用函数PutHzxy(),例如: 7q?9Tj3
$i&e[O7T;
w ihH?~]
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 FjK3
.>'
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 sqla}~CiX
Cnnh7`
H]Cy=Zi"
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 3Th'p aMG
d1T,eJ}
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 eKgisY4#
(H)2s Y
例如: pM x
0="%Y^N
-0?~
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 wyp|qIS;
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 .9R
[*<
q/4YS0CqE
六、使用模板和BIDS aT_&x@x
W"):-Wq
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 eL^.,H0
.zS?9MP
下面的例子实现了一个存储整型变量的堆栈: NZ;{t\
< XP9@t&
thV>j9'
typedef BI_StackAsVector intstack? xB_!>SqF1U
main?? ] x\-$~E
?instack is? //定义一个整型变量的堆栈 p+l !6
for?int I=0?I<10?I++? 9[1`jtm
is.push?I??//10个数压栈 !v X D
for?I=0?I<10?I++? t0z!DOODZP
cout< ? L~(_x"uXd
/b]oa!
Z^V6K3GSz-
通过语句is.push(),is.pop()可以对堆栈进行操作。