五、使用缺省参数 &!>
)EHGV
3wZA,Z
在C++中函数可以使用缺省参数,例如: (|%YyRaX
\jL n5$OW
[=*c8
void PutHzxy?char ?str?int x=-1?int y=-1;? ~EJVlji
? if ?x==-1? x=wherex;??? OB"Ur-hJ0
if ?y==-1? y=wherey;??? ?U'c;*O-
moveto?x?y?? D?;8bI%"
PutHz?str? gyi<ot;
fp!Ba
可以有两种方式调用函数PutHzxy(),例如: <)n8lIK
q\wT[W31@
ERcj$ [:T(
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 ',GWH:B
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 F
FHk0!3
+Hx$ABH
[ ySO
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 } LuPYCzpu
W,&z:z>
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 {pJ{UJKv?
={&}8VA
例如: *s4h tt
DyeV
uB
HPl'u'.Hg
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 I*cB
Ha
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 JU^{!u
YC!Tgb~H
六、使用模板和BIDS S[p.`<{J
)Los\6PRn
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 xXG-yh
&"!s +_
下面的例子实现了一个存储整型变量的堆栈: qMy>:,)Z
CZ&VP%
bvHF;Qywg
typedef BI_StackAsVector intstack? ul0]\(sS:
main?? ,G2]3
3Z
?instack is? //定义一个整型变量的堆栈 kmHIU}Z
for?int I=0?I<10?I++? 5 9$B
z'LY
is.push?I??//10个数压栈 _@U?;73"5
for?I=0?I<10?I++? 3Z?"M
cout< ? r![RRa^
i4 BCm/h
76e%&ZG)Q
通过语句is.push(),is.pop()可以对堆栈进行操作。