五、使用缺省参数 ~g1@-)zYxK
(873:"(
在C++中函数可以使用缺省参数,例如: IK~ur\3
D!qtb6<.
n$#^gzU4
void PutHzxy?char ?str?int x=-1?int y=-1;? % fA0XRM
? if ?x==-1? x=wherex;??? HAGWA2wQ
if ?y==-1? y=wherey;??? 5'+g'9
moveto?x?y?? Og30&a!~F
PutHz?str? xv4nYm9
Y*wbFL6`
可以有两种方式调用函数PutHzxy(),例如: i,;Q
.}Bb
:*@
-cY/M~
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 mz9Kwxe
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 {D`F$=Dlw
'DntZK
aW w`v[v
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 LT'#0dCC
D=9x/ ) *G
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 *zz/U
(9D
]r|.\}2Y7
例如: Sq(=Bn6E
d=lZhqY
"UVV/&`o
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 t@4X(i0
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 My)}oN7\z
u"C`S<c
六、使用模板和BIDS TN/I(pkt1B
4~Lw:o1a
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 sI*( MhU
G@,qO#5&
下面的例子实现了一个存储整型变量的堆栈: Lc<Gny^
F!zZIaB]
, aawtdt/
typedef BI_StackAsVector intstack? aASnk2DFd
main?? pC#Z]_k
?instack is? //定义一个整型变量的堆栈 v,g,c`BjK
for?int I=0?I<10?I++? 3b%y+?-{\u
is.push?I??//10个数压栈 CZwZ#WV6
for?I=0?I<10?I++? I&1Mh4yu
cout< ? i}+dctg/
(_<ruwV]`
:Tj,;0#/
通过语句is.push(),is.pop()可以对堆栈进行操作。