五、使用缺省参数 iyta;dw9
vVl; |
在C++中函数可以使用缺省参数,例如: 3?n>yS
T r0B[QF
Pr ]Ka
void PutHzxy?char ?str?int x=-1?int y=-1;? *%/~mSx
? if ?x==-1? x=wherex;??? [`RX*OH2
if ?y==-1? y=wherey;??? 6Htg5o|W
moveto?x?y?? 6(d }W2GP
PutHz?str? b` Hz$8
29CINC
可以有两种方式调用函数PutHzxy(),例如: ,L bBpi=TJ
o]:3H8
,<BbpIQ2o
PutHzxy?″C++语言″;??//使用缺省参数?在当前位置输出 Suk
PutHzxy?″C++语言″?10?10?;?//没有使用缺省参数 p~HW5\4
Tm_B^W}
]$b[`g&
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。 r}[7x]sP
$`R6=\|
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。 AdRX`[ik
<\kr1qHH
例如: iu&wO<)+?
l2N]a9bq@
^P151*=D
void PutHzxy?char ?str?int x=-1?int y=-1?? //正确 nWQ;9_qBB
void PutHzxy?int x=-1?int y=-1?char ?str??//错误 !*6CWV0
`;%]'F0`
六、使用模板和BIDS sVG(N.y
?T+q/lt4
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。 ZaNQpH.
U- )i+}Ng
下面的例子实现了一个存储整型变量的堆栈: J{^RkGF
E4m`
,|&9M^
typedef BI_StackAsVector intstack? (=~&+z
main?? Xd^\@
?instack is? //定义一个整型变量的堆栈 .{y
uo{u
for?int I=0?I<10?I++? ]?*I9
is.push?I??//10个数压栈 B,,D7cQC
for?I=0?I<10?I++? qOIW(D
cout< ? q.,JVGMS
23~Sjr
Xy5e5K
通过语句is.push(),is.pop()可以对堆栈进行操作。