Tài liệu Lập trình hướng đối tượng & C++ - Chương 4: Hàm thành viên: HÀM THÀNH VIấN
Chương 4
1
Nội dung
• Tỏi ủịnh nghĩa, ðối số mặc nhiờn
• Hàm inline
• 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
2
Tỏi ủịnh nghĩa hàm thành viờ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ố.
Tớnh ủa hỡnh của lập trỡnh hướng ủối tượng
3
Dựng ủối số mặc nhiờn
• 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.
4
Hàm inline
• 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.
5
Truyền ủối tượng như ủối số của hàm
• Truyền qua giỏ trị
– 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ố.
6
• 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.
Truyền ủối tượng như ủ...
4 trang |
Chia sẻ: putihuynh11 | Lượt xem: 461 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Lập trình hướng đối tượng & C++ - Chương 4: Hàm thành viên, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
HÀM THÀNH VIÊN
Chương 4
1
Nội dung
• Tái định nghĩa, ðối số mặc nhiên
• Hàm inline
• 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
2
Tái định nghĩa hàm thành viê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ố.
Tính đa hình của lập trình hướng đối tượng
3
Dùng đối số mặc nhiên
• 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.
4
Hàm inline
• 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.
5
Truyền đối tượng như đối số của hàm
• Truyền qua giá trị
– 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ố.
6
• 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.
Truyền đối tượng như đối số của hàm
7
• Truyền qua tham chiếu
– Tương tự như truyền qua địa chỉ.
– ðị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.
Truyền đối tượng như đối số của hàm
8
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.
9
Trị trả về của hàm là đố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ụ.
10
Trị trả về của hàm là đối tượng
• 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 tồn cục hay nội dung
một con trỏ đã được cấp vùng nhớ trong hàm.
11
Con trỏ *this
• 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.
class ViDu2 {
int a;
class Diem {
int x, y;
12
public:
ViDu2(int x) { a= x; }
void InDiaChi()
{
cout<<“Dia chi doi
tuong : “<<this<<endl;
cout<< “Dia chi du lieu
a : “<<&a<<endl;
}
};
public:
Diem()
{ x=y=0; }
Diem(int x, int y)
{
this->x = x;
this->y = y;
}
};
Hàm thành viên hằng
• Hằng dữ liệu: khơng thay đổi giá trị trong khi thực thi.
• Hằng đối tượng: khơng thay đổi giá trị các thành phần dữ liệu
trong đối tượng.
• Hàm thành viên hằng:
– Cĩ thể thao tác trên hằng đối tượng.
– Khơng làm thay đổi giá trị dữ liệu của đối tượng.
13
class Diem {
int x,y;
public:
Diem();
void Hien() const;
void Doi(int, int);
};
void main() {
Diem a;
const Diem c;
a.Hien();
a.Doi(5,6);
c.Hien();
c.Doi(10,20);
}
Sai vì
Doi(int,int)
khơng là hàm
hằng
Các file đính kèm theo tài liệu này:
- chapter4_9882_1993465.pdf