Xem mẫu

Nội dung Chương 4 HÀM THÀNH VIÊN • 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 1 2 Tái ñịnh nghĩa hàm thành viên Dùng ñối số mặc nhiê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 • 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. 3 4 Hàm inline Truyền ñối tượng như ñối số của hàm • 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. • 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ố. 5 Truyền ñối tượng như ñối số của hàm 6 Truyền ñối tượng như ñối số của hàm • 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 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. 7 8 Trị trả về của hàm là ñối tượng 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. • 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ụ. 9 10 Trị trả về của hàm là ñối tượng Con trỏ *this • 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. • 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 Diem { int x, y; public: Diem() { x=y=0; } Diem(int x, int y) { this->x = x; this->y = y; } … 11 }; class ViDu2 { int a; public: ViDu2(int x) { a= x; } void InDiaChi() { cout<<“Dia chi doi tuong : “< nguon tai.lieu . vn