五、使用缺省参数 G_m $?0\
(6}[y\a+
在C++中函数可以使用缺省参数,例如: enC/@){~
&9+]{jXF
ZZs@P#]
void PutHzxy?char ?str?int x=-1?int y=-1;? hqXp>.W
? if ?x==-1? x=wherex;???
g2LY~
if ?y==-1? y=wherey;??? 2Kkm-#p7
moveto?x?y?? ^cUmLzM
PutHz?str? "h@=O
c
Y9/`w@"v
可以有两种方式调用函数PutHzxy(),例如: 1+F0$<e}
P,Z
K
%K`th&331
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 bIWSNNV0F
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 JpRn)e'Z
4Wd
H!z
]/9@^D}&
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 x/pX?k
UF&B7r
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 0&~JC>S
J9%I&lu/
例如: {xD\w^
A=Y A #0
;tJ}*!z
W
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 8|L U=p`y'
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 QO/nUl0E
Iq0[Kd0.j
六、使用模板和BIDS A'tv[Td8,
I!?)}d
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 kOE\.}~4
_v#Vf*#
下面的例子实现了一个存储整型变量的堆栈: Zt"#'1
SHc?C&^S
4<j7F4
typedef BI_StackAsVector intstack? a'%eyN
main?? en_W4\7^
?instack is? //定义一个整型变量的堆栈 &At9@
for?int I=0?I<10?I++? q)l1tC72
is.push?I??//10个数压栈 d[\$a4G+
for?I=0?I<10?I++? <Fi*wV
cout< ? 34
'[O
z"D0Th`S6
#ZC9=
通过语句is.push(),is.pop()可以对堆栈进行操作。