五、使用缺省参数 c~o+WI
Ym
!(t,FYeH
在C++中函数可以使用缺省参数,例如: aSP4a+\*
uZi.HG{<)
&,.Y9;
b
void PutHzxy?char ?str?int x=-1?int y=-1;? Ei2%DMN7)
? if ?x==-1? x=wherex;??? U/NBFc:[y:
if ?y==-1? y=wherey;??? JO'>oFv_W
moveto?x?y?? c)7j QA
PutHz?str? :h1pBEiH
zW8*E E+,
可以有两种方式调用函数PutHzxy(),例如: Hp|}~xjn
v0 Ir#B,[H
]p!Gt,rYq
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 -TV?E%r
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 cc44R|Kr$$
O6]. *25
zT ZVehEe
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 <A.W 8b7D
1JEnnqu
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 wdvLx
"3F;cCDv]
例如: OD=!&LM
#pHs@uvO
#*>E*#?t
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 ! <WBCclX
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 ,Os? f:Y6
7zTqNnPnf
六、使用模板和BIDS p*l$Wj
F6hmku>\1
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 A!63p$VT;
)J(q49
下面的例子实现了一个存储整型变量的堆栈: .4l/_4,s_
#Z~C`n
u
%5\3Aw
typedef BI_StackAsVector intstack? [= "r<W0
main?? %/.a]j!
?instack is? //定义一个整型变量的堆栈 ,pBh`av
for?int I=0?I<10?I++? T$=4O9G
is.push?I??//10个数压栈 90xk$3(
for?I=0?I<10?I++? BN,>&1I
cout< ? lHB) b}7E
[ REf>_R
C}5M;|%3)
通过语句is.push(),is.pop()可以对堆栈进行操作。