五、使用缺省参数 ]?*wbxU0
wj+*E6o-n
在C++中函数可以使用缺省参数,例如: $^P0F9~0
ZW}_DT0
8_8l.!~
void PutHzxy?char ?str?int x=-1?int y=-1;? =Uh$&m
? if ?x==-1? x=wherex;??? xA/D'
if ?y==-1? y=wherey;??? RpF&\x>
moveto?x?y?? Ned."e
PutHz?str? KSvE~h[#+
ys~x$
可以有两种方式调用函数PutHzxy(),例如: 6 r"<jh #
HDLk>_N_s,
putrSSL}
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 ?EL zj
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 ,)XLq8
_LPHPj^Pg
w@b)g
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 (?c-iKGc
pGZ8F
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 G9lUxmS<
7"mc+QOp
例如: Zh,71Umz
g ?k=^C
. ^u,.
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 #jk_5W
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 TO_e^A#
`g,..Ns-r
六、使用模板和BIDS NgwbQ7)
s>en
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 H. c7Nle
25T18&R
下面的例子实现了一个存储整型变量的堆栈: K;(mC<
^"g~-
OPi0~s
typedef BI_StackAsVector intstack? ,>M[@4`,U
main?? U17d>]ka
?instack is? //定义一个整型变量的堆栈 ~zgGa:uU
for?int I=0?I<10?I++? 7"##]m.
is.push?I??//10个数压栈 ?CZd Ol
for?I=0?I<10?I++? H[gWGbPq7
cout< ? ?(PKeq6
nu^436MSOa
]yu:i-SfP
通过语句is.push(),is.pop()可以对堆栈进行操作。