五、使用缺省参数 B9"d7E#wHF
w~6/p
在C++中函数可以使用缺省参数,例如: le^Fik
ZW?h\0Hh
-9LvAV>
void PutHzxy?char ?str?int x=-1?int y=-1;? #bt z94/~O
? if ?x==-1? x=wherex;??? /5E0'y,|P
if ?y==-1? y=wherey;??? >4ex5
moveto?x?y?? {U-z(0
PutHz?str? UovN"8W+
{EZR}N
可以有两种方式调用函数PutHzxy(),例如: +\+j/sa
NzZ(Nz5
CY?J$sN
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 EC\@$Fg
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 $x }R2
{ 5 r]G
|gV~U~A]
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 3\Amj}RJ
iJOoO"Ai
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 xlZh(pf
J-+mdA
例如: 3F,M{'q
;jxX /c
2+u+9 rW
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 `u3kP
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 r~=+>,
_
4(,.<#
六、使用模板和BIDS GQg
2!s(
DvhFCA}z
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 W.4R+kF<
"#Z e3Uy\
下面的例子实现了一个存储整型变量的堆栈: :[l}Bb,
$-DW+|p.?^
A23K!a2u&
typedef BI_StackAsVector intstack? eLT3b6'"?
main?? 6\l F
?instack is? //定义一个整型变量的堆栈 t_ CMsp
for?int I=0?I<10?I++? #>_t[9;
is.push?I??//10个数压栈 .;31G0<w2
for?I=0?I<10?I++? u"5/QB{
cout< ? J4]"@0 ?6
Hd4 ~v0eS
iM!V4Wih6
通过语句is.push(),is.pop()可以对堆栈进行操作。