五、使用缺省参数 01+TVWKX
!1bATO:x
在C++中函数可以使用缺省参数,例如: AxCFZf 5
!@
)JqF.
*+J`Yk7}
void PutHzxy?char ?str?int x=-1?int y=-1;? -TyBb]
? if ?x==-1? x=wherex;??? o~VZ%B
if ?y==-1? y=wherey;??? BR~+CBH
moveto?x?y?? Oc/ i'
PutHz?str? ^pocbmg
7+P-MT
可以有两种方式调用函数PutHzxy(),例如:
8oJp_sw
"s\himoa
:)k|Onz
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 }wGy#!CSza
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 e~$aJO@B.R
#|
m*k
v&"sTcS|
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 4/&.N]
:2;c@ uj
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 x\5\KGw16
OUm,;WNLf
例如: 5^36nEoA(
ER<Z!*2
stOD5yi
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 =o4McV}
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 HgOrrewj
FC8#XZp
六、使用模板和BIDS >uYGY{+j[
8?t}S2n2
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 C33=<r[;N<
^FK-e;J
下面的例子实现了一个存储整型变量的堆栈: K1-y[pS]E
b!z=:
lJU]sZ9~b
typedef BI_StackAsVector intstack? qD5)AdCGO
main?? VOrBNu
?instack is? //定义一个整型变量的堆栈 t~
z;G%a
for?int I=0?I<10?I++? f,8PPJ:,
is.push?I??//10个数压栈 ??g
=
`yH
for?I=0?I<10?I++? /SJI ~f+$
cout< ? 3>k?-%"
`FIS2sl/
mUwGr_)wj
通过语句is.push(),is.pop()可以对堆栈进行操作。