五、使用缺省参数 M :m-i X
!8 3x,*O
在C++中函数可以使用缺省参数,例如: fX.V+.rj
_ F0qqj
e"jA#Y #
void PutHzxy?char ?str?int x=-1?int y=-1;? ,H{
/@|RW
? if ?x==-1? x=wherex;??? j
s(E-d/
if ?y==-1? y=wherey;??? P1PP#>E-2
moveto?x?y?? *q5'~)W<
PutHz?str? 6r"PtHr
1[k~*QS
可以有两种方式调用函数PutHzxy(),例如: *
*?mZtF
Pn{yk`6E
E(G=~>P
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 ?FRR";
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 M/U$x /3K
{HqwpB\@
Q9K+k*?{N
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 (vIrXF5Dnj
{GF>HHQb
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 fgxsC7P$
l3aG#4jj
例如: 9X&Xs/B
;WIL?[;w
}@'xEx
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 =#XsY,r
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 dRZor gar
m[^;HwJ
六、使用模板和BIDS K{VF_S:
!2x"'o
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 \Rn.ug
VGcl)fIqw?
下面的例子实现了一个存储整型变量的堆栈: TGLkwXOkT
Y51XpcXQ
F~d
!Ub$>
typedef BI_StackAsVector intstack? -<#n7b
main?? tYfhKJzGC
?instack is? //定义一个整型变量的堆栈 /3%]Ggwe
for?int I=0?I<10?I++? ~QdwoeaD
is.push?I??//10个数压栈 '$)Wp_
for?I=0?I<10?I++? 6\86E$f=h
cout< ? 6,G^iv6H
Tu_dkif'
'D(Hqdr;:
通过语句is.push(),is.pop()可以对堆栈进行操作。