五、使用缺省参数 p|9Eue3j2
P5Is#7udN8
在C++中函数可以使用缺省参数,例如: m4~>n(
u #Y#,:{
dk>qTY+j5
void PutHzxy?char ?str?int x=-1?int y=-1;? `),ACkU>U
? if ?x==-1? x=wherex;??? _oAWj]~rO
if ?y==-1? y=wherey;??? &Fy})/F3v
moveto?x?y?? N SkIzaNY
PutHz?str? (t_%8Eu
B6J<
可以有两种方式调用函数PutHzxy(),例如: >& `;@ZOH
;5!M+nk
*wp>a?sG\
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 _Y _v&
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 C2(VYw
wzf%~ats
L <W2a(
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 &<oJw TC
ywY[g{4+
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 mZ0'-ax
+
C'<*
例如:
Lm1
-
ESi'3mbeC
1)v]<Ga~%1
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 B
x-"<^<
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 W!B\VB
MN<uIqG
六、使用模板和BIDS /v8yE9N_
oxZXY]$y
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 kG>m(n
s~>0<3{5
下面的例子实现了一个存储整型变量的堆栈: W'" p:Uhq
B0$ge"FK9
UiQF4Uc"
typedef BI_StackAsVector intstack? @ebSM#F?
main?? uq\[^
?instack is? //定义一个整型变量的堆栈 Mem1X rBH
for?int I=0?I<10?I++? &e)V!o@wJV
is.push?I??//10个数压栈 P&sYS<9q
for?I=0?I<10?I++? B2T=O %
cout< ? [DD#YL\P
lcfX(~/m^
#,CK;h9jy!
通过语句is.push(),is.pop()可以对堆栈进行操作。