五、使用缺省参数 c^"4l
9w
w8S
pt
在C++中函数可以使用缺省参数,例如: ,y"vf^BE.
z z]~IxQ
A]Hz?i
void PutHzxy?char ?str?int x=-1?int y=-1;? y)LX?d
? if ?x==-1? x=wherex;??? _GY2|x2c
if ?y==-1? y=wherey;??? cb'Ya_
moveto?x?y?? s8:epcL`A
PutHz?str? pno}`Cer
]~$@x=p2e
可以有两种方式调用函数PutHzxy(),例如: ~:,}?9
k ]gPMhe
U`N?<zm<oO
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 e`a4Gr
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 CUdpT$ $x3
kqZRg>1A
f3,LX]zKA
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 D;2V|CkU
GYy8kp84
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 3,Z;J5VL4!
,c&t#mu*0
例如: vS ( Y_6
nQ'NS
2OI 0B\
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 0 -M i
q
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 Uun0FCA>
(MqQ3ys
六、使用模板和BIDS BGVnL}0
GLub5GrxR
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 7H6Ge-u
<:(;#&<
下面的例子实现了一个存储整型变量的堆栈: j+fF$6po#t
DB|w&tygq
0gOca +&
typedef BI_StackAsVector intstack? *EO*Gg0d
main?? 0 GFho$f
?instack is? //定义一个整型变量的堆栈 Tw%1m
for?int I=0?I<10?I++? Z;u3G4XlF
is.push?I??//10个数压栈 w?3ww7yf`
for?I=0?I<10?I++? t~}c"|<t
cout< ? 6 ym$8^
GGLSmfb)
,|8aDL?
通过语句is.push(),is.pop()可以对堆栈进行操作。