五、使用缺省参数 L%S(z)xX3
aSse'
C<a
在C++中函数可以使用缺省参数,例如: 74_':,u;]~
}%75Wety
-@7?N6~qZx
void PutHzxy?char ?str?int x=-1?int y=-1;? mD5Vsy{Pb
? if ?x==-1? x=wherex;??? |P_voht
if ?y==-1? y=wherey;??? 3+[;
moveto?x?y?? ~8JOPzK
PutHz?str? 88 x2Hf5I
"L4ZE4|)
可以有两种方式调用函数PutHzxy(),例如: %CoO-1@C
]S0=&x@,
z}BuR*WSY{
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 F\u]X
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 Z.}Z2K
"+XF'ZO
SfSWjq
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 #,[z}fq
m@Hg:DY
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 g"{`g6(+
Kz~E"?
例如: C6"{-{H
i[Qq,MmC
/ jLb{Ky
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 !LR9}Xon
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 JU Xo3D~
dzk1 !yy
六、使用模板和BIDS /07iQcT(
mX2X.ww(4
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 `}:pUf
"tT68
下面的例子实现了一个存储整型变量的堆栈: cqYMzS
t
P(oGNKAS
4V<.:.k
typedef BI_StackAsVector intstack? 9y'To JZ6
main?? ppuJC'GW
?instack is? //定义一个整型变量的堆栈 Y sDai<
for?int I=0?I<10?I++? %y)]Q|
is.push?I??//10个数压栈 sWyx_
for?I=0?I<10?I++? GvzaLEo
cout< ? B/Js>R
7Y?59
[
ZAJ~Tbm[f
通过语句is.push(),is.pop()可以对堆栈进行操作。