五、使用缺省参数 kOQ)QX
ztO)~uL
在C++中函数可以使用缺省参数,例如: Y7t#)?
\jC) ;mk
wp?:@XM
void PutHzxy?char ?str?int x=-1?int y=-1;? kd'b_D[$H
? if ?x==-1? x=wherex;??? xk,Uf,,>
if ?y==-1? y=wherey;??? x4q}xwH
moveto?x?y?? v}$Q
PutHz?str? layxtECP(
q }@L "a`
可以有两种方式调用函数PutHzxy(),例如: hZ4 5i?%
|A3"Jc.2o
IBT>&(cnV
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 T)zk2\u
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 l?m"o-Gp3
=!\Nh,\eQ
xTAfVN
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 %%NoXW
eQ>Ur2H8n
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 ^Hn}\5
'NtI bS
例如: `jE[Xt"@
.Pm5nS
UXct+l
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 .\XRkr'-
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 ]K(a32V CH
,j%\3g`
六、使用模板和BIDS QEJu.o
oZ%uq78#[%
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 &hWELZe0vv
b-&rMML
下面的例子实现了一个存储整型变量的堆栈: iE'_x$i
lju5+0BSb
2y!n c%
typedef BI_StackAsVector intstack? Ij#mmj NW
main?? r)t[QoD1
?instack is? //定义一个整型变量的堆栈 6Ryc&z5
for?int I=0?I<10?I++? |ty&}'6C
is.push?I??//10个数压栈 )U\i7[k>
for?I=0?I<10?I++? ]ae(t`\l^
cout< ? !`{?qQ[=
XVs]Y'*x
tb&?BCp
通过语句is.push(),is.pop()可以对堆栈进行操作。