Bài giảng môn Lập trình hướng đối tượng - Chương 4: Hàm thành viên

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.

pdf4 trang | Chia sẻ: nguyenlam99 | Lượt xem: 1048 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng môn Lập trình hướng đối tượng - 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 toà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:

  • pdftran_quang_hai_bangchapter4_277.pdf
Tài liệu liên quan