五、使用缺省参数 I?PKc'b
*7R3EUUk
在C++中函数可以使用缺省参数,例如: l|&nGCW
$""[(
d?0
7!%cKZCY
void PutHzxy?char ?str?int x=-1?int y=-1;? X3"V1@-i4$
? if ?x==-1? x=wherex;??? mA4v 4z
if ?y==-1? y=wherey;??? 6>"0H/y,
moveto?x?y?? '[HFIJ0K!
PutHz?str? saV3<zgx
s9Xeh"
可以有两种方式调用函数PutHzxy(),例如: =thgNMDm"
tQ)8HVKF
zso.?`85
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 ^qDkSoqC"
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 vxwctJ&
LJiMtqg
)O}x&@Q
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 "qF&%r'
^fx9R5E$:
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 @wg*~"d
hcBfau; r
例如: 0VbZBLe
/0r2v/0
RFZrcM
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 }ri"u;.R
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 \Lc
pl-;?
N(
/PJJ~
六、使用模板和BIDS !Khsx
j{HxX
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 ,wq.C6;&
`@`CZg
下面的例子实现了一个存储整型变量的堆栈: XJQ[aU"[]N
N\vc<Zpn
[Ea5Bn;~!
typedef BI_StackAsVector intstack? L*5&hPU
main?? ?>,aq>2O$
?instack is? //定义一个整型变量的堆栈 fb#Ob0H
for?int I=0?I<10?I++? 2D-*Z=5^
is.push?I??//10个数压栈 0]WM:6 h
for?I=0?I<10?I++? $<yb~z7J
cout< ? auO^v;s
v/^2K,[0>
y /PEm)=Tt
通过语句is.push(),is.pop()可以对堆栈进行操作。