五、使用缺省参数 1crnmJ!C
0fF(Z0R,
在C++中函数可以使用缺省参数,例如: Pz>s6 [ob
!c}O5TI|#
hd>aZ"nm1
void PutHzxy?char ?str?int x=-1?int y=-1;? _/uFsYC
? if ?x==-1? x=wherex;??? PD&\LbuG
if ?y==-1? y=wherey;??? u<3HQ.:;
moveto?x?y?? OMWbZ>jB
PutHz?str? U1DXeh~V
rai3<_W<
可以有两种方式调用函数PutHzxy(),例如: ROg(U8
N
0fb`08,^
?u/@PR\D
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 pP*zq"o
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 dx;Ysn0-
o.w\l\
$ACvV"b
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 ]+|~cRQ9I
Q<h-FW8z
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 8P^ITL z%
aGJC1x
例如: lG4H:[5V
'MEz|Z
U}6.h&$
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 [s"O mAy4
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 4{hps.$?~
X%Z{K-
六、使用模板和BIDS oFy=-p+C
`tHvD=`m.
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 >TOu|r
+W:=e,=
下面的例子实现了一个存储整型变量的堆栈: {Or;
=U #dJ^4P
CK,7^U
typedef BI_StackAsVector intstack? _d"b;4l
main?? W%T>SpFl
?instack is? //定义一个整型变量的堆栈 73V|6tmgY
for?int I=0?I<10?I++? q}~3C1
is.push?I??//10个数压栈 k5D%y3|9
for?I=0?I<10?I++? (@%gS[]
cout< ? V.O(S\
xl6,s>ob
2_n7=&
通过语句is.push(),is.pop()可以对堆栈进行操作。