五、使用缺省参数 #b;k+<n[X
utuWFAGn A
在C++中函数可以使用缺省参数,例如: (lS[a
ZD'mwj+K
}4!}vkVx
void PutHzxy?char ?str?int x=-1?int y=-1;? 4'*-[TKC
? if ?x==-1? x=wherex;??? *]NfT}}
if ?y==-1? y=wherey;??? }BU%<5CQ
moveto?x?y?? 6vAZLNG3
PutHz?str? X/cb1#
BJb,
可以有两种方式调用函数PutHzxy(),例如: &V$cwB
h&CZN !
NfPWcK[
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 MD;Z UAX<
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 fh3uo\`@
XPqGv=CN
L(K 5f7\
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 NQ;X|$!zH
6xtgnl#T
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 TP {\V>*Yz
CEkUXsp
例如: bRyxP2
ym%` l!
#}B1W&\sw
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 J.XhP_aT
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 <uB)u>3
}DM W,+3
六、使用模板和BIDS gBhX=2%
zJW2F_
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 f~\H|E8(
w^
z ftm
下面的例子实现了一个存储整型变量的堆栈: :%J;[bS+
\By_mw
iTq&h=(n
typedef BI_StackAsVector intstack? tt2
S.j
main?? 9ghzK?Yc
?instack is? //定义一个整型变量的堆栈 X"d"a={]
for?int I=0?I<10?I++? y3b"'-%
is.push?I??//10个数压栈 m4oj1h_4
for?I=0?I<10?I++? tmq?h%O>
cout< ? }:c~5whN
4V4S5V
@@K/0:],
通过语句is.push(),is.pop()可以对堆栈进行操作。