五、使用缺省参数 iW?9oe
RNdnlD#P
在C++中函数可以使用缺省参数,例如: y2R=%EFh6
j1F+,
%-l:_A
void PutHzxy?char ?str?int x=-1?int y=-1;?
PBL^xlg
? if ?x==-1? x=wherex;??? OD]J@m
if ?y==-1? y=wherey;??? "AouiZkh
moveto?x?y?? $)3PF
PutHz?str? 5 DB>zou
WO-WoPO
可以有两种方式调用函数PutHzxy(),例如: TyWy5J<
:+
]uvbQ.l_t
>t2b?(h/x
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 8q3TeMYV
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 (@E#O$'
"Cc"y* P
wP/9z(US
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 C):d9OI?
y^=oYL
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 *?D2gaCta
5S]P#8
例如: `5-#M/J
:
xZC7"
aELT"b,x
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 h!K2F~i{P
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 ^qx\ e$R
a{*'pY(R0$
六、使用模板和BIDS Z5Ihc%J^
z,|%?
1
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 rhTk}2@h
! |h2&tH
下面的例子实现了一个存储整型变量的堆栈: {,FeNf46
vkpV,}H
o'7ju~0L
typedef BI_StackAsVector intstack? ;CMC`h9,
main?? 23$hwr&G\
?instack is? //定义一个整型变量的堆栈 |u"R(7N*
for?int I=0?I<10?I++? #>jH[Q
is.push?I??//10个数压栈 hZWK5KwT
for?I=0?I<10?I++? "IG$VjgcB
cout< ? wmE,k1G
R0mT/h2
M5kHD]b
通过语句is.push(),is.pop()可以对堆栈进行操作。