五、使用缺省参数 R#"U/8b>z
gV<0Hj
在C++中函数可以使用缺省参数,例如: /d{glOk
zj~8>QnKk
ZmEG<T05
void PutHzxy?char ?str?int x=-1?int y=-1;? ^t\kLU
? if ?x==-1? x=wherex;??? v9Z lNA7m!
if ?y==-1? y=wherey;??? W2}%zux
moveto?x?y?? }s`jl``PM
PutHz?str? ,"P5D&,_
s$f+/Hs
可以有两种方式调用函数PutHzxy(),例如: t7{L[C$
eNIkiJ$uS
skk-.9
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 B] A 5n8<
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 |HaU3E*R
4?9soc
(Wm/$P;
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 d%}crM-KTL
r4;5b s6wm
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 ^m6k@VM
Gl?P.BCW.&
例如: k)H[XpM
v+xgxQGYH
K!IF?iell
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 hKk\Y{wv'
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 * 23m-
1_Dn?G^H
六、使用模板和BIDS 7sQ]w
/Nj:!!
AN
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 Q3B'-BZe
=$"zqa.B6
下面的例子实现了一个存储整型变量的堆栈: ^>,<*p
'+o:,6
h]J&A
typedef BI_StackAsVector intstack?
K^!e-Xi6
main?? ,omp F$%
?instack is? //定义一个整型变量的堆栈 Ee t+
for?int I=0?I<10?I++?
At`1)
is.push?I??//10个数压栈 TEaD-mY3
for?I=0?I<10?I++? -4*'WzWr
cout< ? s=^r/Sz902
u^#4G7<
W (=Wg|cr
通过语句is.push(),is.pop()可以对堆栈进行操作。