五、使用缺省参数 H-&T)
-k8<LR3
在C++中函数可以使用缺省参数,例如: |ns
B'Q
DEw>f%&4
tP][o494\&
void PutHzxy?char ?str?int x=-1?int y=-1;? B%^W$7
q
? if ?x==-1? x=wherex;??? bt{b%r
if ?y==-1? y=wherey;??? Ls`[7w
moveto?x?y?? 0H/)wy2ym
PutHz?str? d@XXqCR<
JyO2P
可以有两种方式调用函数PutHzxy(),例如: )UCc!
Iz^vt#b
cE;n>ta"F
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 'L@kZ
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 DYDeb i6
F1)5"7f
,r8#-~A6,A
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 vR3\E"Zi
f
OasX!=
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 IE|? &O
2O
2HmL
例如: 21$E.x 6
nSv@FT'~z
![i)_XO
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 $*Kr4vh
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 Yu$QL@
`y|_hb
六、使用模板和BIDS Uv m:`e~?
ZXIw^!8@/
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 oo\7\b#Jx
.He}f,!f<
下面的例子实现了一个存储整型变量的堆栈: 'eo/"~/*w
;,}Dh/&E
9Vru,7g
typedef BI_StackAsVector intstack? U4.$o]58
main?? 4`B3Kt`o
?instack is? //定义一个整型变量的堆栈 _a#k3r
for?int I=0?I<10?I++? ,v%'2[}
is.push?I??//10个数压栈 @y'0_Y0-B
for?I=0?I<10?I++? u4h0s1iI
cout< ? ^)y8X.iO
Yb=77(QV
3=Q:{
通过语句is.push(),is.pop()可以对堆栈进行操作。