五、使用缺省参数 qZ]VS/5A
0dX=
在C++中函数可以使用缺省参数,例如: 3b/vyZF
R8W44I*R:
s$y#Ufz
void PutHzxy?char ?str?int x=-1?int y=-1;? z{M,2
? if ?x==-1? x=wherex;??? arH\QPaka'
if ?y==-1? y=wherey;??? l$~bkVNL
moveto?x?y?? 25@j2K (
PutHz?str? DO,&Foh\
)aA9z(x
可以有两种方式调用函数PutHzxy(),例如: -v+^x`HR
tS\NO@E_Jh
YaZ"&i
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 fvfVBk#
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 4 AmF^H
V4i%|vV
/Gv$1t^a
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 4g^+y.,r_f
`Q^Sm`R
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 :Ty*i
,%G2>PBt
例如: x{o5Ha{
uiEA=*axp
l%5%oN`4
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 q _|5,_a
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 O!+5As
7Cp_41._
六、使用模板和BIDS \ OINzfbr
;<R_j%*
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 3s$.l}
% x;!s=U
下面的例子实现了一个存储整型变量的堆栈: Z6@J-<u
nv
Gd:]Z
r:rJv
typedef BI_StackAsVector intstack? sBI%lrO
main?? ?t P/VL
?instack is? //定义一个整型变量的堆栈 1Sk6[h'CL
for?int I=0?I<10?I++? vs5wxTM
is.push?I??//10个数压栈 `bF;Ew;
for?I=0?I<10?I++? s""8V_,;
cout< ? n{WJ.Y*
jn Y3G
U {!{5l:
通过语句is.push(),is.pop()可以对堆栈进行操作。