五、使用缺省参数 2EcYO$R!
;xH'%W9z
在C++中函数可以使用缺省参数,例如: pXlBKJmW
`i^1U O
"J:NW_U
void PutHzxy?char ?str?int x=-1?int y=-1;? \$|UFx
? if ?x==-1? x=wherex;??? ~:b~f]lO
if ?y==-1? y=wherey;??? nt`l6b
moveto?x?y?? RSeezP6#
PutHz?str? H 6<@
5j01Mx
A
可以有两种方式调用函数PutHzxy(),例如: `B0*/ml
DL!s)5!M
&-Y:4.BX Z
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 H#`?toS
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 P(+ar#,G
x=+I8Q4:
K'/x9.'%
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 F5q1VEe
OHvzK8
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 ?0&>?-?
rzj'!~>U
例如: >c>ar>4xF
w%H#>k
/7)G"qG~F~
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 ebVfny$D
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 PS]XLz
jC8BLyGE_
六、使用模板和BIDS G ~\$Oq8
En_8H[<%
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 b4PK
>n\Q[W
下面的例子实现了一个存储整型变量的堆栈: !]T|=yw
rt;>pQ9,
4f-C]N=
typedef BI_StackAsVector intstack? lV="IP^7
main?? \hc9Rk
?instack is? //定义一个整型变量的堆栈 86Vu PV-
for?int I=0?I<10?I++? Q{kuB+s
is.push?I??//10个数压栈 Q+N @j]'
for?I=0?I<10?I++? 46`{mPd{aO
cout< ? }N!8i'suz9
C`K/ai{4
x7>sy,c
通过语句is.push(),is.pop()可以对堆栈进行操作。