五、使用缺省参数 yCZ2^P!a
*SXSF95
在C++中函数可以使用缺省参数,例如: e$x4Ux7*"
0yKwH\S
i{4'cdr?
void PutHzxy?char ?str?int x=-1?int y=-1;? '%3u%;"
? if ?x==-1? x=wherex;??? #Xj;f^}/
if ?y==-1? y=wherey;??? /S/tE
moveto?x?y?? `7F@6n
PutHz?str? I"~xDa!
6@i|Kw(:
可以有两种方式调用函数PutHzxy(),例如: % d4+Ctrp-
4$qNcMdz
7BVXBw
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 G)4ZK#wz
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 ipgN<|`?@
B?!9W@
.59KE]u
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 K%k XS
aViJ
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 Qs~d_;
<e$5~Spc
例如: ^7J~W'hI
Q>##hG:m
5+J64_
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 t*5z1T?
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 #IH<HL)t%e
qZ `n Zi
六、使用模板和BIDS YLD-SS[/>
S a(yjF1
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 z%++\.g_
#_JA5W+E
下面的例子实现了一个存储整型变量的堆栈: Qd9-u)L<
6@*5!,
(9Fabo\SH
typedef BI_StackAsVector intstack? cH+h=E=
main?? .G7]&5s
?instack is? //定义一个整型变量的堆栈 EY,;e\7O,
for?int I=0?I<10?I++? )w^GPlh
is.push?I??//10个数压栈 NKupOJJq
for?I=0?I<10?I++? ~% D^Ga7
cout< ? jdV .{8@
pE$|2v
>_|Z{:z]d.
通过语句is.push(),is.pop()可以对堆栈进行操作。