五、使用缺省参数 }u%"$[I}
%y&]'A
在C++中函数可以使用缺省参数,例如: <_Eg?ePW#
%v+=;jw
UL(
lf}M
void PutHzxy?char ?str?int x=-1?int y=-1;? j?6X1cM q
? if ?x==-1? x=wherex;??? I9Eu',
if ?y==-1? y=wherey;??? Kc #|Z
moveto?x?y?? ecj7BT[mLI
PutHz?str? Dzl;-]S
o%`Xa#*Ly
可以有两种方式调用函数PutHzxy(),例如: MV0Lq:# N
+pf5\#l?
7AwgJb hn
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 x({H{'9?
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 9Ma0^_
rkB'Hf
oFDz;6
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 ";x+1R.d
tnz+bX26
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 Ub_4yN;
e)H!uR
例如: -)jax
h5"Ov,K3[
ibpzeuUl
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 ,qQG;w,m
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 L?5f+@0.
[8XLK 4e
六、使用模板和BIDS 2-'Opu
$s\UL}Gc
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 ;@3FF
FS"eM"z
下面的例子实现了一个存储整型变量的堆栈: a.@qGsIH
~Rpm-^
~+G#n"P n
typedef BI_StackAsVector intstack? P[ r];e
main??
?wb+L
?instack is? //定义一个整型变量的堆栈 X^@I].
for?int I=0?I<10?I++? rJJ[X4$
is.push?I??//10个数压栈 vUA0FoOp
for?I=0?I<10?I++? Sv'y e
cout< ? 5D Y\:AF
W_`A"WdT.
l@JSK;
通过语句is.push(),is.pop()可以对堆栈进行操作。