五、使用缺省参数 [HN|\afz
{CR 5K9
在C++中函数可以使用缺省参数,例如: 'S[++w?Qq
l ^d[EL+
YPzU-:3
void PutHzxy?char ?str?int x=-1?int y=-1;? =CL}
$_
? if ?x==-1? x=wherex;??? gr-fXZO
if ?y==-1? y=wherey;??? ]`bQW?
moveto?x?y?? :K
~
PutHz?str? f50L,4,
wBQF~WY
可以有两种方式调用函数PutHzxy(),例如: }<z_Q_b+e
i/b'4o=8
ork=`};
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 '+
xu#R
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 DI`%zLDcY
6l$L~>
-k(CJ5H9
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 6{,HiY
}Z
TGi,Pc
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 bln/1iS
:L_BG)dM
例如: ~Ph\Sbp
2Bk$ lx7
M7>(hVEAW'
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 oo=#XZkk
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 w#N?l!5
bS
>0DU
六、使用模板和BIDS <`!PCuR
9s}Kl($
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 9'x)M?{8
!;6Jng%
下面的例子实现了一个存储整型变量的堆栈: xyH/e*a
/U6%%%-D`
@<M*qK1h
typedef BI_StackAsVector intstack? qzFQEepso
main?? wh:1PP
?instack is? //定义一个整型变量的堆栈 \V2,pi8'v
for?int I=0?I<10?I++? M=xQ=j?
is.push?I??//10个数压栈 `o79g"kxe
for?I=0?I<10?I++? s cdtWA
cout< ? )'
xETA
*n(> ^
#'OaKt?Z)
通过语句is.push(),is.pop()可以对堆栈进行操作。