N i dung<br />
• Tái ñ nh nghĩa, ð i s m c nhiên<br />
<br />
Chương 4<br />
<br />
• Hàm inline<br />
<br />
HÀM THÀNH VIÊN<br />
<br />
• Truy n ñ i tư ng như ñ i s c a hàm.<br />
• Tr tr v c a hàm là ñ i tư ng<br />
• Con tr *this<br />
• Hàm thành viên h ng<br />
<br />
1<br />
<br />
2<br />
<br />
Tái ñ nh nghĩa hàm thành viên<br />
<br />
Dùng ñ i s m c nhiên<br />
<br />
• Trong 1 l p, có th ñ nh nghĩa các hàm thành viên trùng tên,<br />
nhưng các hàm này ph i khác nhau v tham s .<br />
<br />
• Có th dùng ñ i s m c nhiên cho hàm thành viên.<br />
• T t c ñ i s m c nhiên ñ u ph i n m cu i hàm.<br />
<br />
Tính ña hình c a l p trình hư ng ñ i tư ng<br />
<br />
3<br />
<br />
4<br />
<br />
Hàm inline<br />
<br />
Truy n ñ i tư ng như ñ i s c a hàm<br />
• Truy n qua giá tr<br />
<br />
• Có 2 cách khai báo hàm inline :<br />
– Thêm t khóa inline vào trư c hàm thành viên.<br />
– ð nh nghĩa hàm ngay bên trong khai báo l p.<br />
<br />
– Tham s c a hàm thành viên có th có ki u b t kỳ.<br />
– M t ñ i tư ng có th ñư c truy n theo tham s .<br />
<br />
5<br />
<br />
Truy n ñ i tư ng như ñ i s c a hàm<br />
<br />
6<br />
<br />
Truy n ñ i tư ng như ñ i s c a hàm<br />
• Truy n qua tham chi u<br />
<br />
• Truy n qua đ a ch<br />
<br />
– Tương t như truy n qua ñ a ch .<br />
<br />
– Ti t ki m ô nh cho chương trình (hơn truy n qua giá tr ).<br />
– Có th làm thay đ i giá tr c a đ i tư ng truy n vào.<br />
<br />
– ð nh nghĩa hàm s ñơn gi n hơn (như truy n qua giá tr )<br />
– Cũng có th làm thay ñ i giá tr c a ñ i tư ng truy n vào.<br />
<br />
7<br />
<br />
8<br />
<br />
Tr tr v c a hàm là ñ i tư ng<br />
<br />
Tr tr v c a hàm là ñ i tư ng<br />
<br />
• Tr tr v truy n qua giá tr<br />
– Tr tr v c a hàm thành viên có th có ki u b t kỳ.<br />
– M t hàm có th có tr tr v là m t ñ i tư ng.<br />
<br />
• Tr tr v truy n qua ñ a ch<br />
– Tránh lãng phí b nh và th i gian g i hàm.<br />
– S d ng ph i c n th n vì có th gây ra hi u ng ph .<br />
<br />
9<br />
<br />
10<br />
<br />
Tr tr v c a hàm là ñ i tư ng<br />
<br />
Con tr *this<br />
<br />
• Tr tr v truy n qua tham chi u<br />
– Tương t như truy n qua ñ a ch<br />
– ða s dùng ñ tr v m t ñ i tư ng toàn c c hay n i dung<br />
m t con tr ñã ñư c c p vùng nh trong hàm.<br />
<br />
• Lưu ñ a ch c a chính ñ i tư ng ñang xét.<br />
• Mu n l y giá tr c a chính ñ i tư ng: dùng *this.<br />
• Thu c tính truy c p là private.<br />
<br />
11<br />
<br />
class Diem {<br />
int x, y;<br />
public:<br />
Diem()<br />
{ x=y=0; }<br />
Diem(int x, int y)<br />
{<br />
this->x = x;<br />
this->y = y;<br />
}<br />
…<br />
};<br />
<br />
class ViDu2 {<br />
int a;<br />
public:<br />
ViDu2(int x) { a= x; }<br />
void InDiaChi()<br />
{<br />
cout