五、使用缺省参数 )7Wf@@R'F
IOmfF[
在C++中函数可以使用缺省参数,例如: k="i;! Ge
qR8Lh( "i
FcU SE
void PutHzxy?char ?str?int x=-1?int y=-1;? R__OP`!
? if ?x==-1? x=wherex;??? R&k<AZ
if ?y==-1? y=wherey;??? 8OU\V5i[,q
moveto?x?y?? 7`'Tb p
PutHz?str? "<1{9
YjKxb 9
可以有两种方式调用函数PutHzxy(),例如: }&J q}j
{4Cmu;u
FvjPdN/L?R
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 dR,fXQm
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 7R\<inCQ
@RKryY)
zRr*7G
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 |)v,2
aX'*pK/-
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 _Y;W0Z
S2&4g/
例如: +=</&Tm
%7.30CA|#
hRhe& ,v
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 YN F k
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 7Ak6,BuI%
5U$0F$BBp
六、使用模板和BIDS ]N?kG`[
^u ~Q/4
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 "+G8d'%YV
9WyhZoPD*
下面的例子实现了一个存储整型变量的堆栈: oap4rHk}
S.NPZ39}ZE
2c*GuF9(0
typedef BI_StackAsVector intstack? BRiE&GzrF
main?? '~=SzO
?instack is? //定义一个整型变量的堆栈 /a4{?? #e
for?int I=0?I<10?I++? )+DmOsH
is.push?I??//10个数压栈 -uf|w?
for?I=0?I<10?I++? [7Oe3=
cout< ? UP,c |
83#mB:^R
}o`76rDN
通过语句is.push(),is.pop()可以对堆栈进行操作。