五、使用缺省参数 b8eDD+ul k
?`za-+<r<
在C++中函数可以使用缺省参数,例如: ~WzMK
XSD"/_xD
=;kRk.qzy
void PutHzxy?char ?str?int x=-1?int y=-1;? Rd`{qW
? if ?x==-1? x=wherex;??? (MZ A
if ?y==-1? y=wherey;??? n+v!H O"2u
moveto?x?y?? 22l|!B%o
PutHz?str? \x3^
u!hqq^1
可以有两种方式调用函数PutHzxy(),例如: }]uB?
+c
B.{8/.4
!a.3OpQ
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 P9 W<gIO
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 ,)0/Ec
,| $|kO/
E|KLK4]
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 "Nk`RsW
pE9aT5
L
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 JrY"J]/
}Z~pfm_S
例如: H[>klzh6
!
8 /:X&
&
gt].rwo"
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 -MVNXAKnZ
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 >FK)p
6)tB{:h&~0
六、使用模板和BIDS Enq6K1@%G
V\e13cL]
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 5$(b3]
e<ism?WG
下面的例子实现了一个存储整型变量的堆栈: O c^6u
"<g?x`iz
~ wJ3AqNC?
typedef BI_StackAsVector intstack? >"PqQO
main?? D}k-2RM2k
?instack is? //定义一个整型变量的堆栈 j\jL[hG_
for?int I=0?I<10?I++? 3Vb=6-|
is.push?I??//10个数压栈 hIE%-gZ/
for?I=0?I<10?I++? J?|K#<%
cout< ? lEVQA*u[
Y ;~~?[6
b7>,-O
通过语句is.push(),is.pop()可以对堆栈进行操作。