五、使用缺省参数 sB+
B,DF
W)p?cK`
在C++中函数可以使用缺省参数,例如: r[W
Ir|r7
sHn-#SGm
Ds@nuQ
void PutHzxy?char ?str?int x=-1?int y=-1;? w3E#v&"=Y
? if ?x==-1? x=wherex;??? -![>aqWmj1
if ?y==-1? y=wherey;??? P&.-c _
moveto?x?y?? T'${*NVn
PutHz?str? wG}Rh,
Q=n2frW(T
可以有两种方式调用函数PutHzxy(),例如: XZH\HK)K-]
k?VH4yA
qfS
]vc_N
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 a=&{B'^G
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 ;tG@ 6
\@F~4,VT
|Q*OA
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 HBiUp$(mB
eccJt
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 ,f)#&}x*2+
@0&KM|+
例如: Ro:)N:C
"Kc1@EX=
RElIWqgY
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 JGG (mrvR
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 fA" VLQE
-v &
六、使用模板和BIDS |@Sj:^cJD
:=e"D;5
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 ZMGthI}~-
sMNhD/bb
下面的例子实现了一个存储整型变量的堆栈: G-Dc(QhU&
PCs`aVZ
l,@rB+u
typedef BI_StackAsVector intstack? #Zj3SfU~`
main?? :@]%n~x
?instack is? //定义一个整型变量的堆栈 45U!\mG
for?int I=0?I<10?I++? 2e|m3
is.push?I??//10个数压栈 r31)Ed$
for?I=0?I<10?I++? ~tB#Q6`nB
cout< ? 7 DW_G
Y
wu
> k
?*dt JL
通过语句is.push(),is.pop()可以对堆栈进行操作。