五、使用缺省参数 ,ZrR*W?iF
uqI'e_&=&5
在C++中函数可以使用缺省参数,例如: u*5}c7)uId
RyukQY~<W
3]lq#p:
void PutHzxy?char ?str?int x=-1?int y=-1;? RdyKd_0`Q
? if ?x==-1? x=wherex;??? 0F_hXy@K
if ?y==-1? y=wherey;??? sKKc_H3YSH
moveto?x?y?? V9Mr&8{S4
PutHz?str? +_*NY~
;~$Q;m1
可以有两种方式调用函数PutHzxy(),例如: "x$L2>9
M[O22wFs
fJ
_MuAv
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 R<Mp$K^b
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 {:_*P
TVk
=?+w5oI0
T95FoA
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 _7';1 D
!ii(2U
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 \}k R'l
gpzFY"MS=
例如: .mqMzV
jr.{M
d_&pxy?
>
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 o+{i26%
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 '~f*O0_
Ei+lVLoC
六、使用模板和BIDS ht6}v<x.eA
6(htpT%J
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 CKe72OC
gp 11/.
下面的例子实现了一个存储整型变量的堆栈: Q7F4OS5b
HGh)d` 8
nSQ]qH&4d
typedef BI_StackAsVector intstack? Q"eqql<h#
main?? >c
Tt2v
?instack is? //定义一个整型变量的堆栈 3$K[(>s
for?int I=0?I<10?I++? [okV[7
is.push?I??//10个数压栈 Kx,X{$Pe
for?I=0?I<10?I++? sm G?y~
cout< ? TxN+-< f
WL'!M&h
dQ_'8
)
通过语句is.push(),is.pop()可以对堆栈进行操作。