Bài giảng Lập trình hướng đối tượng và C++: Chương 4 cung cấp cho người học các kiến thức: 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,...
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ố 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 tồ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