五、使用缺省参数 aQG#bh [
B@=Yj_s
在C++中函数可以使用缺省参数,例如: UP`q6]P
]SPB c
5{5ABV
void PutHzxy?char ?str?int x=-1?int y=-1;? c[YjGx
? if ?x==-1? x=wherex;??? jG2w(h/"
if ?y==-1? y=wherey;??? vr vzV
moveto?x?y?? 3K{8sFDO
PutHz?str? N<{`n;
esHiWHAC
可以有两种方式调用函数PutHzxy(),例如: |-mazvA
Jt)~h,68
bPOx~ CMh
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 BNy"YK$
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 ;FmSL#]I
yRznP)
Z])_E6.
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 .$k"+E
/Ow?nWSt
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 8F*
WT|]
hG@ys5
例如: A!D:Kc3
M BT-L
6:,^CI|@t
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 m\f_u*
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 zFn&~lFB
p[)<d_
六、使用模板和BIDS mig3.is
gp HwiFc
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 K5>:WiY
zl\#n:|
下面的例子实现了一个存储整型变量的堆栈: CiuN26>
_);Kb/
3\+p1f4
typedef BI_StackAsVector intstack? $at|1+bQ
main?? ^WD$
gd
?instack is? //定义一个整型变量的堆栈 IFxI>6<&
for?int I=0?I<10?I++? CK(ev*@\D,
is.push?I??//10个数压栈 [QbXj0en$
for?I=0?I<10?I++? 3(+#^aw
cout< ? K]8wW;N4
cEdJn@ ,
wF8\
通过语句is.push(),is.pop()可以对堆栈进行操作。