Lập trình hướng đối tượng & C++ - Chương 4: Hàm thành viên

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ư ủ...

pdf4 trang | Chia sẻ: putihuynh11 | Lượt xem: 461 | Lượt tải: 0download
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:

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