五、使用缺省参数 )*Rr5l /l
$(&+NJ$U$
在C++中函数可以使用缺省参数,例如: +"JQ5~7
8W}rSv+
Hzojv<c
void PutHzxy?char ?str?int x=-1?int y=-1;? IS%e5
? if ?x==-1? x=wherex;??? K<?[^\
if ?y==-1? y=wherey;??? $c7Utms
moveto?x?y?? %Hy.
PutHz?str? * a@78&N
G u#wH
可以有两种方式调用函数PutHzxy(),例如: @zSj&4
(?kCo
!c=EB`<*
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 ]`TX%Qni
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 o5< w2(
N3@gvS
dW#?{n-H<
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 =[IKwmCX
-'RD%_
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 V*1-wg5>
15"[MX A
例如: D<(VP{,G
JJu}Ed_
(zIF2qY
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 ]QmY`pTB`
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 1owe'7\J
Ct386j><
六、使用模板和BIDS 884 -\M"h
ms/Q-
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 %^(} fu
Ls{]ohP
下面的例子实现了一个存储整型变量的堆栈: y.?Q
ANXN.V
2>Sr04Pt
typedef BI_StackAsVector intstack? n-:n.JX
main?? mZ4I}_\,
?instack is? //定义一个整型变量的堆栈 yvV]|B@sO
for?int I=0?I<10?I++? 1L<X+,]@
is.push?I??//10个数压栈 G33'Cgo:,
for?I=0?I<10?I++? !E_RD,_
cout< ? gbN@EJ
\zV'YeG
{#H'K*j{
通过语句is.push(),is.pop()可以对堆栈进行操作。