五、使用缺省参数 }[UH1+`L
\mJR^t
在C++中函数可以使用缺省参数,例如: ~1}fL 1~5
j$/#2%OVN
U\qbr.<
void PutHzxy?char ?str?int x=-1?int y=-1;? b1i~F45h
? if ?x==-1? x=wherex;??? e Ru5/y~
if ?y==-1? y=wherey;??? HK<S|6B7V
moveto?x?y?? u pUJF`3
PutHz?str? {^N,$,Ab.
O#18a,o@
可以有两种方式调用函数PutHzxy(),例如: DeNWh2
Fv
%@k{
$/g`{OI]K
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 a.gMH
uL
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 KA{QGaZ/
>]gB@tn[
LiQH!yHW
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 ;}U]^LT=
:{Z%dD
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 >yP>]r+
>yn]h4M
例如: (2L,m
a*D<J}xe
RfD#/G3|
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 Vh?vD:|
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 ;^0ok'P\~9
047PlS
六、使用模板和BIDS Vn{;8hZ:a
M!!vr8}
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 !]A/ID0K
&1^~G0Rh\
下面的例子实现了一个存储整型变量的堆栈: ^mFsrw
w_@{v wM$A
L/WRVc6
typedef BI_StackAsVector intstack? iM:-750n/
main?? z(^dwMw}
?instack is? //定义一个整型变量的堆栈 .6
0yQ[aE
for?int I=0?I<10?I++? NopfL
is.push?I??//10个数压栈 nXb_\9E
for?I=0?I<10?I++? K8BlEF`
cout< ? nFG X2|d
4 Sk@ v
W|rAn2H
通过语句is.push(),is.pop()可以对堆栈进行操作。