五、使用缺省参数 z 4e7PW|
aG-vtld
在C++中函数可以使用缺省参数,例如: $f$SNx)),
f%A;`4`q
#>a\>iKQ2q
void PutHzxy?char ?str?int x=-1?int y=-1;? J@/kIrx
? if ?x==-1? x=wherex;??? [7:,?$tC
if ?y==-1? y=wherey;??? CQc+#nRe
moveto?x?y?? o3XvRj
PutHz?str? rP'me2
B
0.Q
Ujw
可以有两种方式调用函数PutHzxy(),例如: %HhBt5w
,5P0S0*{
[CTnXb
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 '9%\;
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 B5,N7z34F
<X#C)-.
^7`BP%6
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 [>vLf2OID
v1#otrf
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 ,X?{07gH
h,(26 y/s
例如: CmWeY$Jb
j}#w)M
[DYQ"A=)d
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 Ky`qskvu
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 =?5]()'*n
b.OsiT;_j
六、使用模板和BIDS h<h%*av|
(Nq=H)cm8
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 p
.%]Q*8
#]-SJWf3
下面的例子实现了一个存储整型变量的堆栈: ;'gWu
xW+6qtG`
9V a}I-
typedef BI_StackAsVector intstack? '"52uZ{
main?? QDZWX`qw{
?instack is? //定义一个整型变量的堆栈 m%0p\Y-/
for?int I=0?I<10?I++? 9v#CE!
is.push?I??//10个数压栈 k<z)WNBf
for?I=0?I<10?I++? :S]\0;8]
cout< ? ,10=
wC"FDr+
M+oHtX$
通过语句is.push(),is.pop()可以对堆栈进行操作。