五、使用缺省参数 5/[H+O1;
)o1eWL}
在C++中函数可以使用缺省参数,例如: j83? m
{eJt,[Y *
X C86-b)E
void PutHzxy?char ?str?int x=-1?int y=-1;? z@s5m}
? if ?x==-1? x=wherex;??? O40+M)e]
if ?y==-1? y=wherey;??? 1:C:?ZC#c
moveto?x?y?? n6WY&1ZE~
PutHz?str? 3OyS8`
LL^q1)o
可以有两种方式调用函数PutHzxy(),例如: P=N$qz$U
$FH18
mN`YuR~
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 o 6 {\Zzp
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 Bsf7mcXz7z
F+UG'4%
W^,S6!
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 }*]B-\>
v1U?&C
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 )/ Ud^wi
rr`;W}3
例如: d|9b~_::V
{
kSf{>Ia
rjt8fN
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 ;?fS(Vz~
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 .@)mxC:\K9
lA!"z~03*
六、使用模板和BIDS 5cr(S~Q;
&hHW3Q(1
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 t22;87&|
D(W,yq~7uY
下面的例子实现了一个存储整型变量的堆栈: `Ycf]2.,$
R9We/FhOY
FQ%c~N
typedef BI_StackAsVector intstack? @K223?c8l
main?? [$(%dV6O
?instack is? //定义一个整型变量的堆栈 h-a!q7]l
for?int I=0?I<10?I++? R;whW:Tx
is.push?I??//10个数压栈 ))D:8l@
for?I=0?I<10?I++? .D,p@4
cout< ? g]@(E
iO/XhSD
|LG4=j.l
通过语句is.push(),is.pop()可以对堆栈进行操作。