五、使用缺省参数 LJmRa
aXyg`CDv
在C++中函数可以使用缺省参数,例如: 5'"l0EuD
L_ 2R3w
~VaO,8&+L
void PutHzxy?char ?str?int x=-1?int y=-1;? J7s\
? if ?x==-1? x=wherex;??? c9axzg
UA
if ?y==-1? y=wherey;??? n]J;BW&Av
moveto?x?y?? 7wwlZ;w
PutHz?str? !-Md+I_
n<66 7
<
可以有两种方式调用函数PutHzxy(),例如: ,: 4+hJ<q
C}cYG
R#33ACCX
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 F)4;:".zna
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 S9@)4|3C|p
^%2S,3*0
hYv;*]
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 =%$BFg1a(
r[y3@SE5
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 oM)4""|
ICXz(?a
例如: 3(R]QO`%'
C9}m-N
D-4\AzIb
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 Vh;P,no#
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 ">NPp\t>/Z
g)#.|d+
六、使用模板和BIDS ~4[4"Pi>|
O5 ?3nYHa
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 !:w&eFC6
PR*qyELu
下面的例子实现了一个存储整型变量的堆栈: _4MT,kN
:h60
Z*Jp?[##
typedef BI_StackAsVector intstack? +q@g
main?? sH{4 .tw
?instack is? //定义一个整型变量的堆栈 0@*EwI
for?int I=0?I<10?I++? ;c~%:|
is.push?I??//10个数压栈 fN{JLp
for?I=0?I<10?I++? l/o
4bkV
cout< ? 0I
\l_St@
TNK~ETE4
}wR&0<HA
通过语句is.push(),is.pop()可以对堆栈进行操作。