1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 5 - TS. Lý Anh Tuấn

37 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 3,24 MB

Nội dung

Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 5 Nạp chồng toán tử, cung cấp cho người học những kiến thức như: Nạp chồng toán tử cơ sở; Kiểu đối tượng trả về; Hàm bạn, lớp bạn; Tham chiếu và nạp chồng. Mời các bạn cùng tham khảo!

NGUYÊN LÝ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài 5: Nạp chồng toán tử Giảng viên: TS Lý Anh Tuấn Email: tuanla@tlu.edu.vn Nội dung Nạp chồng toán tử sở ◦ Các tốn tử ngơi ◦ Là hàm thành viên Kiểu đối tượng trả Hàm bạn, lớp bạn Tham chiếu nạp chồng ◦ > ◦ Các toán tử: =, [ ], ++, Giới thiệu nạp chồng toán tử Các toán tử +, -, %, ==, … thực hàm  Chỉ đơn giản gọi với cú pháp khác: x+7  ◦ “+” toán tử hai ngơi ◦ x & tốn hạng  Hãy tưởng tượng là: +(x, 7) ◦ “+” tên hàm ◦ x, đối số ◦ Hàm “+” trả tổng đối số Viễn cảnh nạp chồng toán tử  Các toán tử dựng sẵn ◦ Vd: +, -, =, %, ==, /, * ◦ Đã làm việc với kiểu C++ dựng sẵn ◦ Ở dạng hai chuẩn  Chúng ta nạp chồng chúng ◦ Để làm việc với kiểu ◦ Để cộng kiểu theo nhu cầu dạng ký hiệu mà quen thuộc  Luôn nạp chồng cho thao tác tương đồng Nạp chồng sở  Nạp chồng toán tử ◦ Rất giống nạp chồng hàm ◦ Bản thân tốn tử tên hàm  Ví dụ khai báo: const Money operator +(const Money& amount1, const Money& amount2); ◦ Nạp chồng + cho toán hạng kiểu Money ◦ Để hiệu cần sử dụng tham chiếu ◦ Trả giá trị kiểu Money: cho phép cộng đối tượng “Money” Nạp chồng “+”  Xét ví dụ trước: ◦ Lưu ý: “+” nạp chồng hàm thành viên ◦ Định nghĩa bao gồm nhiều thứ phép cộng đơn giản  Đòi hỏi phát biểu phép cộng kiểu Money  Phải điều khiển giá trị âm/dương  Các định nghĩa nạp chồng toán tử thường đơn giản ◦ Chỉ thực “phép cộng” đặc thù cho kiểu bạn Định nghĩa “+” Money  Định nghĩa phép “+” cho lớp Money Câu lệnh return trả đối tượng tạo hàm tạo Nạp chồng “==“  Toán tử đẳng thức, == ◦ Cho phép so sánh đối tượng Money ◦ Khai báo: bool operator ==(const Money& amount1, const Money& amount2);  Trả kiểu bool với đẳng thức đúng/sai  Cũng hàm thành viên Nạp chồng “==“ cho Money  Định nghĩa toán tử “==“ cho lớp Money: Kiểu đối tượng trả  Trả đối tượng ◦ Việc nạp chồng toán tử “+” const Money operator +(const Money& amount1, const Money& amount2); ◦ Trả đối tượng  Trả đối tượng khơng ◦ Khi khơng có const khai báo: Money operator +( const Money& amount1, const Money& amount2); ◦ Xét biểu thức gọi: m1 + m2  Trả đối tượng Money sửa đổi  Nên định nghĩa đối tượng trả 10 Sử dụng tham chiếu Dường nguy hiểm  Hữu ích số trường hợp:  Truyền tham chiếu  ◦ Thường sử dụng để thi hành kỹ thuật  Trả tham chiếu ◦ Cho phép thi hành nạp chồng toán tử viết tự nhiên ◦ Tưởng tượng trả bí danh cho biến 23 Trả tham chiếu  Cú pháp: double& sampleFunction(double& variable); ◦ double& double khác ◦ Phải giống khai báo hàm đầu đề  Mục trả phải có tham chiếu ◦ Chẳng hạn biến kiểu ◦ Không thể biểu thức chẳng hạn “x+5”  Khơng có vị trí nhớ để trỏ đến  Ví dụ định nghĩa hàm double& sampleFunction(double& variable) { return variable; } 24 Nạp chồng >  Cho phép nhập xuất đối tượng ◦ Tương tự nạp chồng toán tử khác  Cải thiện tính khả đọc ◦ Giống tất nạp chồng toán tử ◦ Cho phép: cout > myObject; ◦ Thay cho: myObject.output(); … 25 Nạp chồng

Ngày đăng: 09/12/2021, 10:04