五、使用缺省参数 T9RR.
ng
cpgHF`nt
在C++中函数可以使用缺省参数,例如: ~6kEpa
R7ZxS
T"in
void PutHzxy?char ?str?int x=-1?int y=-1;?
,Ztj
? if ?x==-1? x=wherex;??? ["MF-tQ5
if ?y==-1? y=wherey;??? {{SQL)yJ
moveto?x?y?? G0CmY43
PutHz?str? ,U],Wu)
PM7*@~.
可以有两种方式调用函数PutHzxy(),例如: tE3!;
< I8hy$+6
{/XzIOO;b
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 p!|Wp
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 >Ah [uM
Eae]s8ek9
ysGK5kFz
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 asj^K|.z
-?2ThvT
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 ~-A5h(
4@/[aFH
例如: 6n
UXDd8OJL
(t>BO`,
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 jNaK]
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 rVt6tx
db@i*Bf
六、使用模板和BIDS h.sH:]Z
Pqo"~&Y|~
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 c:>&Bg&,6T
u~bk~3.I
下面的例子实现了一个存储整型变量的堆栈: lyF~E
,m8l
/wG
HB||'gIC
typedef BI_StackAsVector intstack? < :<E~anH
main?? 9Fv1D
?instack is? //定义一个整型变量的堆栈 XBF#ILJ
for?int I=0?I<10?I++? owmV7E1
is.push?I??//10个数压栈 |@sUN:G4k
for?I=0?I<10?I++? 2?z3s|+[
cout< ? L'H'E,
52C>f6w
]
RN&s
通过语句is.push(),is.pop()可以对堆栈进行操作。