五、使用缺省参数 t$%<eF@w
%\(-<aT
在C++中函数可以使用缺省参数,例如: ]{q=9DczG(
Nf<f}`
Lui6;NY
void PutHzxy?char ?str?int x=-1?int y=-1;? Q(cLi:)X2
? if ?x==-1? x=wherex;??? deArH5&!
if ?y==-1? y=wherey;??? vPGUE`!D+
moveto?x?y?? _@y uaMoW=
PutHz?str? ||Owdw|{
X'<RqvDc5
可以有两种方式调用函数PutHzxy(),例如: VBQAkl?(}4
l"(PP3
Gp
\-AwE
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 MZ&.{SY7
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 MH#"dGGu
fkp(M
A$N%deb
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 6IV):S~
&Z[+V)6,,
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 #h^nvRmON
0 K#|11r
例如: p<(a);<L
@'}2xw[eU
]7cciob
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 .%{B=_7
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 Y,v9o
B )[RIs
六、使用模板和BIDS LdH1sHy*d`
3o[(pfcU
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 eOiH7{OA,
wW p7N
下面的例子实现了一个存储整型变量的堆栈: =1,!EkG
ZP!.C&O
3e;|KU
typedef BI_StackAsVector intstack? /KWdIP#
main?? Nwt[)\W `
?instack is? //定义一个整型变量的堆栈 n}F$kyI
for?int I=0?I<10?I++? #7Q9^rG
is.push?I??//10个数压栈 i a!!jK}
for?I=0?I<10?I++? ]|eMEN['
cout< ?
q/ Y4/
c:Cw#
'DVn /3?X
通过语句is.push(),is.pop()可以对堆栈进行操作。