Xem mẫu
- Updatesofts.com Ebooks Team
vì 5 là k t qu c a subtraction (7,2).
Còn v i l nh
cout
- Updatesofts.com Ebooks Team
T khoá void trong ph n danh sách tham s có nghĩa là hàm này không nh n m t tham
s nào. Tuy nhiên trong C++ không c n thi t ph i s d ng void ñ làm ñi u này. B n ch
ñơn gi n s d ng c p ngo c ñơn ( ) là xong.
B i vì hàm c a chúng ta không có m t tham s nào, vì v y l i g i hàm dummyfunction
s là :
dummyfunction ();
Hai d u ngo c ñơn là c n thi t ñ cho trình d ch hi u ñó là m t l i g i hàm ch không
ph i là m t tên bi n hay b t kì d u hi u nào khác.
Trang 33
- Updatesofts.com Ebooks Team
Hàm (II).
Truy n tham s theo tham s giá tr hay tham s bi n.
Cho ñ n nay, trong t t c các hàm chúng ta ñã bi t, t t c các tham s truy n cho hàm ñ u
ñư c truy n theo giá tr . ði u này có nghĩa là khi chúng ta g i hàm v i các tham s ,
nh ng gì chúng ta truy n cho hàm là các giá tr ch không ph i b n thân các bi n. Ví d ,
gi s chúng ta g i hàm addition như sau:
int x=5, y=3, z;
z = addition ( x , y );
Trong trư ng h p này khi chúng ta g i hàm addition thì các giá tr 5 and 3 ñư c truy n
cho hàm, không ph i là b n thân các bi n.
ð n ñây các b n có th h i tôi: Như v y thì sao, có nh hư ng gì ñâu ? ði u ñáng nói
ñây là khi các b n thay ñ i giá tr c a các bi n a hay b bên trong hàm thì các bi n x và y
v n không thay ñ i vì chúng ñâu có ñư c truy n cho hàm ch có giá tr c a chúng ñư c
truy n mà thôi.
Hãy xét trư ng h p b n c n thao tác v i m t bi n ngoài bên trong m t hàm. Vì v y b n
s ph i truy n tham s dư i d ng tham s bi n như trong hàm duplicate trong ví d
dư i ñây:
x=2, y=6, z=14
// passing parameters by reference
#include
void duplicate (int& a, int& b,
int& c)
{
a*=2;
b*=2;
c*=2;
}
int main ()
{
int x=1, y=3, z=7;
duplicate (x, y, z);
cout
- Updatesofts.com Ebooks Team
ði u ñ u tiên làm b n chú ý là trong khai báo c a duplicate theo sau tên ki u c a m i
tham s ñ u là d u và (&), ñ báo hi u r ng các tham s này ñư c truy n theo tham s
bi n ch không ph i tham s giá tr .
Khi truy n tham s dư i d ng tham s bi n chúng ta ñang truy n b n thân bi n ñó và b t
kì s thay ñ i nào mà chúng ta th c hi n v i tham s ñó bên trong hàm s nh hư ng tr c
ti p ñ n bi n ñó.
Trong ví d trên, chúng ta ñã liên k t a, b và c v i các tham s khi g i hàm (x, y và z) và
m i s thay ñ i v i a bên trong hàm s nh hư ng ñ n giá tr c a x và hoàn toàn tương t
v i b và y, c và z.
Ki u khai báo tham s theo d ng tham s bi n s d ng d u và (&) ch có trong C++.
Trong ngôn ng C chúng ta ph i s d ng con tr ñ làm vi c tương t như th .
Truy n tham s dư i d ng tham s bi n cho phép m t hàm tr v nhi u hơn m t giá tr .
Ví d , ñây là m t hàm tr v s li n trư c và li n sau c a tham s ñ u tiên.
Previous=99, Next=101
// more than one returning value
#include
void prevnext (int x, int& prev,
int& next)
{
prev = x-1;
next = x+1;
}
int main ()
{
int x=100, y, z;
prevnext (x, y, z);
cout
- Updatesofts.com Ebooks Team
6
// default values in functions
5
#include
int divide (int a, int b=2)
{
int r;
r=a/b;
return (r);
}
int main ()
{
cout
- Updatesofts.com Ebooks Team
return (a/b);
}
int main ()
{
int x=5,y=2;
float n=5.0,m=2.0;
cout
- Updatesofts.com Ebooks Team
{
if (a > 1)
return (a * factorial (a-1));
else
return (1);
}
int main ()
{
long l;
cout > l;
cout
- Updatesofts.com Ebooks Team
• Trong ph n li t kê các tham s ch c n vi t ki u c a chúng là ñ . Vi c vi t tên c a
các tham s trong ph n khai báo m u là không b t bu c.
Ví d :
Type a number (0 to exit): 9
// prototyping
Number is odd.
#include
Type a number (0 to exit): 6
Number is even.
void odd (int a);
Type a number (0 to exit): 1030
void even (int a);
Number is even.
Type a number (0 to exit): 0
int main ()
Number is even.
{
int i;
do {
cout > i;
odd (i);
} while (i!=0);
return 0;
}
void odd (int a)
{
if ((a%2)!=0) cout
nguon tai.lieu . vn