五、使用缺省参数 Q45gC28x
`Ez8!d{MD8
在C++中函数可以使用缺省参数,例如: &OlX CxH
=xQPg0g
v%r/PHw
void PutHzxy?char ?str?int x=-1?int y=-1;? O>N/6Z
? if ?x==-1? x=wherex;??? {)iiu
if ?y==-1? y=wherey;??? 3:O|p[2)L
moveto?x?y?? 2$o#b.
PutHz?str? &q&~&j'[
$Zr \$z2
可以有两种方式调用函数PutHzxy(),例如: &pQ[(|=(
h3bQ<?m
7H*,HZc@=
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 Q;N)$Xx
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 :t9sAD
?V}ub>J/=
-X_\3J
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 _&(L{cFx6
T6b~uE
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 F Uz1P
nuDu
例如: d~MY
z6"
|"PS e~ u
GSs?!BIC
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 V?Q45t Ae
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 4X",:B}
])G|U A.
六、使用模板和BIDS qzNXz_#+u
ySI}Nm>&=
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 A;5_/ 2
Hs$HeAp;
下面的例子实现了一个存储整型变量的堆栈: n*ROlCxV
HE{UgU:tY
E,F^!4 rJ$
typedef BI_StackAsVector intstack? Rp;"]Q&b
main?? "@5qjLz]
?instack is? //定义一个整型变量的堆栈 (-Q~@Q1
for?int I=0?I<10?I++? '4It>50b
is.push?I??//10个数压栈 ePZAi"k
for?I=0?I<10?I++? 'gXD?ARW
cout< ? ]&; In,z
TQ:h[6v
0i"2s}^+_
通过语句is.push(),is.pop()可以对堆栈进行操作。