五、使用缺省参数 H8"RdKwg?
([$KXfAi]h
在C++中函数可以使用缺省参数,例如: )xc1Lsrr9
axnVAh|}S
9u=]D> kb
void PutHzxy?char ?str?int x=-1?int y=-1;? JT}"CuC
? if ?x==-1? x=wherex;??? x!I@cP#O
if ?y==-1? y=wherey;??? Yw=@*CK'
moveto?x?y?? o&q:b9T
PutHz?str? MA tF,
wIRU!lIF9
可以有两种方式调用函数PutHzxy(),例如: dW/(#KP/+
) %Xp?H_
_@\-`>J
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 9r\p4_V
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 Se??E+aX
85"Szc-#
m6
M/G
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 g#{7qmM
Dp*:oMATx0
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 'O ~_g5kC
De$Ic"Z9L
例如: MIr[_
1^hG}#6_
s;<]gaonB_
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 Q%'4jn?H
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 ;YokPiBy
:[?7,/w
六、使用模板和BIDS Yc[vH=gV}
p&(z'd
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 mtFC H
+tkm,>s
下面的例子实现了一个存储整型变量的堆栈: #?M[Q:
p/ZgzHyF
sn[<Lq
typedef BI_StackAsVector intstack? Q Wm
g#2 '
main?? Or/YEt}
?instack is? //定义一个整型变量的堆栈 aAu%QRq
for?int I=0?I<10?I++? (8S+-k?
is.push?I??//10个数压栈 iU{\a,
for?I=0?I<10?I++? \HoVS
cout< ? N}z]OvnZH
`aMnTF5:
9@h-q(-
通过语句is.push(),is.pop()可以对堆栈进行操作。