五、使用缺省参数 5>z`==N)
vv0A5p8H
在C++中函数可以使用缺省参数,例如: o+{]&V->gN
a<%Ivqni
8T ?=_|
void PutHzxy?char ?str?int x=-1?int y=-1;? `[)
awP
? if ?x==-1? x=wherex;??? a2J01B
if ?y==-1? y=wherey;??? ~>8yJLZ.7
moveto?x?y?? ZDHm@,d
PutHz?str? f(}?Sp_
Mr/;$O{
可以有两种方式调用函数PutHzxy(),例如: YN.[KQ(!
}>`rf{T
vjNP
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 jz
CA2N%
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 4%k{vo5i
{D6lSj
)"W__U0
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 fpd4 v|(
l/WQqT
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 u7Z-kZ
3zC<k2B
例如: Er@'X0n
b;kgP`%%
BO5\rRa0
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 +5AWX,9,-
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 l@edR)n <
{'O,G$Ldkr
六、使用模板和BIDS jL^3/0"o
e,J
q<=j
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 #)A.yK`u
Cp!bsasj
下面的例子实现了一个存储整型变量的堆栈: e`]x?t<U4/
k*xMe-
d v8q&_
typedef BI_StackAsVector intstack? VsIDd}~C%
main?? Y52f8qQq
?instack is? //定义一个整型变量的堆栈 d@d\9*mn
for?int I=0?I<10?I++? _]oNbcbt(
is.push?I??//10个数压栈 {,:yZ&(
for?I=0?I<10?I++? = Ob-'Syg>
cout< ? &k\`!T1
Y)V)g9
w|t}.u
通过语句is.push(),is.pop()可以对堆栈进行操作。