五、使用缺省参数 *X<De
=%RDT9T.
在C++中函数可以使用缺省参数,例如: Y ,}p
yp :yS
s:fnOMv
"
void PutHzxy?char ?str?int x=-1?int y=-1;? fSun{?{
? if ?x==-1? x=wherex;??? |-e=P9,
if ?y==-1? y=wherey;??? WxXVL"
moveto?x?y?? VD=$:F]
PutHz?str? *w%;$\^
[KjQW/sb'
可以有两种方式调用函数PutHzxy(),例如: c 9ghR0WM
xw?G?(WO
=jG3wf*
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 |E?%Cj^W
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 neZ_TT/3K
,2?C^gxt
} g
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 #}jf TM
xK_$^c.
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 :z"Uw*
-D
V;{8U4
例如: 3^`bf=R
w=f8UtY9@A
Ni0lj:
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 bUWtlg
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 p=r{ODw#3
I#A`fJ
六、使用模板和BIDS j+Tk|GRab
JLG5`{
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 e`_3= kI
16aa IK
下面的例子实现了一个存储整型变量的堆栈: .y'OoDe
;eA~z"g
j}ruXg
typedef BI_StackAsVector intstack? vhUuf+P*
main?? S[ 2`7'XV
?instack is? //定义一个整型变量的堆栈 Ads^y`b
for?int I=0?I<10?I++? Bq2}nDP
is.push?I??//10个数压栈 ")o.x7~N
for?I=0?I<10?I++? $iF7hyZ
cout< ? 9r)5d&,6
|]B]0J#_
$~9U-B\
通过语句is.push(),is.pop()可以对堆栈进行操作。