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