五、使用缺省参数 ''! j:49
7(C)vtEO:
在C++中函数可以使用缺省参数,例如: "s_S!;w@
,+C?UW
ePaC8sd0
void PutHzxy?char ?str?int x=-1?int y=-1;? lZ2gCZ
? if ?x==-1? x=wherex;??? e.XD5~Ax
if ?y==-1? y=wherey;??? Qz2jV
moveto?x?y?? tux`-F
PutHz?str? QG
L~??
HB*BL+S06
可以有两种方式调用函数PutHzxy(),例如: #}~?8/h!
~d,$nZ"z
a0B%x!y^
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 [(TmAEON
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 ^ u0y<kItX
@ <4 U &
H<g8u{
$
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 ~+Cl9:4T
**AkpV)
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 s9+lC!!
J_|%8N{[x
例如: j':<7n/A
ft0d5n!ui4
VJCj=jX
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 R{aqn0M
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 Kg /,
$`vXI%|.
六、使用模板和BIDS }&s |~
KZ65#UVX
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 Gb"kl.j
S?D]P'<
下面的例子实现了一个存储整型变量的堆栈: .>_%12>
"^
dMCS@
#\_FSr fX
typedef BI_StackAsVector intstack? W4(
main?? R@>^t4#_Q0
?instack is? //定义一个整型变量的堆栈 GH3RRzp r
for?int I=0?I<10?I++? 4[%_Bnv#AJ
is.push?I??//10个数压栈 rF{,]U9`
for?I=0?I<10?I++? )S#?'gt*
cout< ? MA%g-}
<9$Pl%:
u'T>Y1I
通过语句is.push(),is.pop()可以对堆栈进行操作。