Nội dung • Tái ñịnh nghĩa, ðối số Chương • Hàm inline HÀM THÀNH VIÊN • Truyền ñối tượng ñối số hàm • Trị trả hàm ñối tượng • Con trỏ *this • Hàm thành viên Tái ñịnh nghĩa hàm thành viên Dùng ñối số • Trong lớp, ñịnh nghĩa hàm thành viên trùng tên, hàm phải khác tham số • Có thể dùng ñối số cho hàm thành viên • Tất ñối số ñều phải nằm cuối hàm Tính ña hình lập trình hướng ñối tượng Hàm inline Truyền ñối tượng ñối số hàm • Truyền qua giá trị • Có 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 bên khai báo lớp – Tham số hàm thành viên có kiểu – Một ñối tượng ñược truyền theo tham số Truyền ñối tượng ñối số hàm Truyền ñối tượng ñối số hàm • Truyền qua tham chiếu • Truyền qua địa – Tương tự truyền qua ñịa – 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ị đối tượng truyền vào – ðịnh nghĩa hàm ñơn giản (như truyền qua giá trị) – Cũng làm thay ñổi giá trị ñối tượng truyền vào Trị trả hàm ñối tượng Trị trả hàm ñối tượng • Trị trả truyền qua giá trị – Trị trả hàm thành viên có kiểu – Một hàm có trị trả ñối tượng • Trị trả truyền qua ñịa – Tránh lãng phí nhớ thời gian gọi hàm – Sử dụng phải cẩn thận gây hiệu ứng phụ 10 Trị trả hàm ñối tượng Con trỏ *this • Trị trả truyền qua tham chiếu – Tương tự truyền qua ñịa – ða số dùng ñể trả ñối tượng toàn cục hay nội dung trỏ ñã ñược cấp vùng nhớ hàm • Lưu ñịa ñối tượng ñang xét • Muốn lấy giá trị ñối tượng: dùng *this • Thuộc tính truy cập 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