五、使用缺省参数 4Y?fbb<
q# j[0,^ $
在C++中函数可以使用缺省参数,例如: ?sHZeWZ(
J;>;K6pW
q!W,2xqZoq
void PutHzxy?char ?str?int x=-1?int y=-1;? ILCh1=?{9r
? if ?x==-1? x=wherex;??? al#(<4sJ
if ?y==-1? y=wherey;??? ?J$k
5;
moveto?x?y?? .J -k^+-
PutHz?str? 1V`-D8-?
mZU
L}[xf
可以有两种方式调用函数PutHzxy(),例如: LHtO|Utn(
ddL3wQ
v^eAQoFLhN
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 >C,0}lj
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 rZ,qHM
tzN9d~JZ
ds*gL ~k^
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 1R_@C.I
qVU<jt
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 O\7x+^.
Q7u|^Gu,5
例如: #c:@oe4v
~0CNCP
Y1lUO[F j
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 ;ZB=@@l(
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 ot7f?tF2<J
to13&#o
六、使用模板和BIDS !9gpuS[
^%*qe5J
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 y
a$yRsd`
SkV pZh
下面的例子实现了一个存储整型变量的堆栈: vgc~%k62c
Zs^zD;zU
Q=!QCDO(
typedef BI_StackAsVector intstack? tV4yBe<``
main?? =0&XdxX
?instack is? //定义一个整型变量的堆栈 H.?`90IQ
for?int I=0?I<10?I++? 4r;le5@
is.push?I??//10个数压栈 e|C2/U-
for?I=0?I<10?I++? hcU^!mp
cout< ? CXn?~m&K
8]&Fu3M^
>CG;df<~
通过语句is.push(),is.pop()可以对堆栈进行操作。