五、使用缺省参数 epG;=\f}m`
6op\g].P
在C++中函数可以使用缺省参数,例如: YD+C1*c!
O,OGq0c
;XtDz
void PutHzxy?char ?str?int x=-1?int y=-1;? ]cA~%$c89s
? if ?x==-1? x=wherex;??? I9Sh~vTm=u
if ?y==-1? y=wherey;??? \!^o<$s.G
moveto?x?y?? ,3n}*"K
PutHz?str? C|lMXp\*
unX^ MPpw
可以有两种方式调用函数PutHzxy(),例如: }jk^M|Z"Oz
=[jBOx&
<bjy<98LT
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 F"F(s!
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 ~%}g"|o
z::2O/ho
C=b5[, UCB
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 l|fd,
A+}4N%kh
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 =|#-Rm^YB
[ho'Pc3A<
例如: XM 7zA^-
WcJ{}V9
tV,zz;* Oe
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 y@Or2bO#
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 'q-h
kN
FD-)nv2:
六、使用模板和BIDS 6\Z^L1973
DVS7N_cx2o
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 $-0u`=!
l
)4OV>
下面的例子实现了一个存储整型变量的堆栈: 'oEmbk8Hg
AK!G#ug
gkdjH8(2
typedef BI_StackAsVector intstack? r__M1
!3
main?? 8dH|s#.4um
?instack is? //定义一个整型变量的堆栈 ;:4puv+]
for?int I=0?I<10?I++? hMQaT-v
is.push?I??//10个数压栈 9T1G/0k-
for?I=0?I<10?I++? zyr6Tv61U
cout< ? Ame%:K!t
fjFy$NX&>
[ZbK)L+_
通过语句is.push(),is.pop()可以对堆栈进行操作。