五、使用缺省参数 P[E:=p
HP`dfo~j
在C++中函数可以使用缺省参数,例如: qHM,#W<
=}SH*xi6
8HL$y-F
void PutHzxy?char ?str?int x=-1?int y=-1;? UvR F\x%
? if ?x==-1? x=wherex;??? 6Ja} N
if ?y==-1? y=wherey;??? {[Bo"a>%
moveto?x?y?? s+9q`k^
PutHz?str? V(/ @$&
(7v]bqfw
可以有两种方式调用函数PutHzxy(),例如: AHa%?wb
x}acxu 2H7
}ZPO^4H;-
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 Z %?:
CA
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 >b6!*Lrhs
m*'^*#
"YW&,X5R
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 A:{PPjs%LA
+@n8DM{b
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 P;B<R"
J`uO~W"
例如: _tl
6I5,PB
ED0Vlw+1
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 f=$w,^)M
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 v$H=~m
l'Oz-p.@
六、使用模板和BIDS 2.xA' \M
/&PRw<}>_o
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 -eZ$wn![
]f%yeD
下面的例子实现了一个存储整型变量的堆栈: LYYz =gvZl
(4;m*'X
+>v3&[lGv
typedef BI_StackAsVector intstack? !|\$|m<n
main?? rGNYu\\
?instack is? //定义一个整型变量的堆栈 %
~!A,
for?int I=0?I<10?I++? Nn`l+WA3
is.push?I??//10个数压栈 P1gW+*?
for?I=0?I<10?I++? m{dXN=
cout< ? 6a_MA*XK
.?<M$38fv
?vnO@Bb/a
通过语句is.push(),is.pop()可以对堆栈进行操作。