五、使用缺省参数 4Iz~3fqB7
WB= gN:?
在C++中函数可以使用缺省参数,例如: S]<Hx_[}
NZ
Xmrc{S
E;+3VJ+F"
void PutHzxy?char ?str?int x=-1?int y=-1;? U*6r".sz
? if ?x==-1? x=wherex;??? [1s B
if ?y==-1? y=wherey;??? rc"Z$qU?
moveto?x?y?? U#Ud~Q q
PutHz?str? U?kJXM2
kefQH\<X
可以有两种方式调用函数PutHzxy(),例如: N[AX29
_xbVAI4
3D\I#g
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 lc*<UZR
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 aK,G6y
ATwPfo8jx@
KF-n_:Bd+
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 |n~-LH++
#wt#-U;
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 7^ER?@:W
oJ5V^.
例如: "_9Dau$
t,&1~_9
x;kW }U
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 "*?^'(yA@
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 /Wt<[g#
A_CK,S*\,&
六、使用模板和BIDS S25&UwUw
kMK-E<g
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 xFgY#F
h_H$+!Nzb
下面的例子实现了一个存储整型变量的堆栈: CY9`ztO*
Qq>M}
)Wgh5C`
typedef BI_StackAsVector intstack? j134iVF%
main?? JEj.D=@[
?instack is? //定义一个整型变量的堆栈 D;m>9{=
for?int I=0?I<10?I++? <D=U= 5
is.push?I??//10个数压栈 uP<tP:
for?I=0?I<10?I++? ZMoN
cout< ? q&7J1
u>d,6
!
8nNRn[oS
通过语句is.push(),is.pop()可以对堆栈进行操作。