五、使用缺省参数 &6/%kkv
/$:U$JVb?l
在C++中函数可以使用缺省参数,例如: z]$>+MH_
?'wsIH]m
[4XC#OgA
void PutHzxy?char ?str?int x=-1?int y=-1;? @KA1"Wb_
? if ?x==-1? x=wherex;??? ;v_V+t<$
if ?y==-1? y=wherey;??? !| xZ6KV
moveto?x?y?? 5V @&o`!=h
PutHz?str? KDD@%E
@rwU 1T33
可以有两种方式调用函数PutHzxy(),例如: xGRT"U(
W2eAhz&
~@Kf2dHes
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 sofu
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 kaQ2A
CZ3].DA|z
9!}q{2j
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 G52Z)^
ErDL^M-`
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 MCU9O
Q0~j$Jc
例如: ^.vmF>$+I
6>,#
6{?jl
rl?7W];
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 s<&[\U
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 TsHF
tj9S
EgNH8i
六、使用模板和BIDS `G?qY8
CCqT tp
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 O-PdM`mqW
Z^#]#f
下面的例子实现了一个存储整型变量的堆栈: ^VI,C|
XlkGjjW#/J
bRPO:lAy
typedef BI_StackAsVector intstack? =nU/ [T.
main?? !;dSC<
?instack is? //定义一个整型变量的堆栈 FP@qh
for?int I=0?I<10?I++? \84v-VK
is.push?I??//10个数压栈 ^u)rB<#BR
for?I=0?I<10?I++? i2PZ'.sL
cout< ? ~HmxEk9
O>V(cmqE`
-@M3Dwsi3
通过语句is.push(),is.pop()可以对堆栈进行操作。