五、使用缺省参数 ?y XAu0
Xl |1YX1&m
在C++中函数可以使用缺省参数,例如: 4*Z6}"
=\,
qP
;oH,~|K
void PutHzxy?char ?str?int x=-1?int y=-1;? iO1nwl !#
? if ?x==-1? x=wherex;??? uk`8X`'
if ?y==-1? y=wherey;??? s|bM%!$1
moveto?x?y?? Gi^Ha=?J%
PutHz?str? >i,iOx|E-
n,M)oo1G
可以有两种方式调用函数PutHzxy(),例如: 17g^ALs
Q}A=jew
Zt3}Z4d
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 o**y Z2
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 FZpKFsPx
;P?q2jI
2_QN&o ~h
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 m:Go-tk
_'x8M
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 *HM?YhR
|`yZIY_
例如: u>T76,8|\
e5v`;(^M
r;cV&T/?
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 Sj
3oV
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 `m%dX'0E
DhKr;e
六、使用模板和BIDS fJ80tt?r
~0tdfK0c
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 ZKbDp~
_ptP[SV^j
下面的例子实现了一个存储整型变量的堆栈: (
76{2
X1J;1hRUP
CUmH,`hu
typedef BI_StackAsVector intstack? 9k2,3It
main?? hFb
fNB3
?instack is? //定义一个整型变量的堆栈 bcJ@-i0V
for?int I=0?I<10?I++? H*!5e0~rR
is.push?I??//10个数压栈 Z^6#4Q]YC
for?I=0?I<10?I++? .;Y
x*]
cout< ? [QEwK|!L
@5Qoi~o
w6,*9(;$Pk
通过语句is.push(),is.pop()可以对堆栈进行操作。