五、使用缺省参数 '8H4shYg
Hk.TM2{w
在C++中函数可以使用缺省参数,例如: /]Md~=yNp
l4YJ c
!ons]^km
void PutHzxy?char ?str?int x=-1?int y=-1;? k2tF}
? if ?x==-1? x=wherex;???
:KP@RZm
if ?y==-1? y=wherey;??? k)=s>&hl
moveto?x?y?? 051E6-
PutHz?str? f+)L#>Gl?
1 bU,$4
可以有两种方式调用函数PutHzxy(),例如: ,m|h<faZL
{Gk1vcq
{]@= ijjf
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 08\,<9
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 vw/J8'
0 ZKx<]!
~4Fvy'
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 i3mcx)d@H
,<P
vovg_
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 Q\7h`d%)
Ka
V8[|Gn,
例如: A]oV"`f
Moza".fiN
wc4{)qDE
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 `l[c_%Bm
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 2eY_%Y0
flbd0NB
六、使用模板和BIDS m&,(Jla
Am|%lj+1z
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 u `6:5k
?GR"FmB(
下面的例子实现了一个存储整型变量的堆栈: _Q 4)X)F
;dgp+
N S[l/0F&
typedef BI_StackAsVector intstack? =-n}[Y}A
main?? Y.rsR6
?instack is? //定义一个整型变量的堆栈 GGs}i1m
for?int I=0?I<10?I++? h3
}OX{k
is.push?I??//10个数压栈 I,vJbvvl!
for?I=0?I<10?I++? Qpc__dA\
cout< ? W[e$>yK
{_p_%;
meO:@Z0
通过语句is.push(),is.pop()可以对堆栈进行操作。