五、使用缺省参数 u K+9gTv
1R^XWAb
在C++中函数可以使用缺省参数,例如: ~z-?rW
uD0(aqAZ
A52LH,
void PutHzxy?char ?str?int x=-1?int y=-1;? (:</R$I
? if ?x==-1? x=wherex;??? GqmDDL1
if ?y==-1? y=wherey;??? 2ID*U d*
moveto?x?y?? M6o
xtt4
PutHz?str? U]`'GM/x
e
_SoM!;
可以有两种方式调用函数PutHzxy(),例如: ^VM"!O;h{
>x|A7iWn{,
% 8rr*l5
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 e>ZbZy?
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 KNO*)\
E-BOIy,
rw40<SS"Z
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 02]8|B(E90
bv:0EdVr
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 |ec(z
>S-N|uR6
例如: IL8'{<lM
8o%<.]
F1{?]>G
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 &UJTy'
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 :JTRRv
HlOAo:8'
六、使用模板和BIDS nsr
_\F\
IxK 3,@d
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 Eb4< 26A
;Wfv+]n9
下面的例子实现了一个存储整型变量的堆栈: S+Yy
WNF=NNO-R
@@&@}IQcR1
typedef BI_StackAsVector intstack? +Zty}fe
main?? flm,r<*}
?instack is? //定义一个整型变量的堆栈 z Et6
for?int I=0?I<10?I++? OW[/%U>
is.push?I??//10个数压栈 0IT20.~
for?I=0?I<10?I++? (|ct`KU0#
cout< ? M rH%hRV6R
eJVOVPg<,
Muc*?wB`
通过语句is.push(),is.pop()可以对堆栈进行操作。