[r]
(1)Ngơn ngữ lập trình Bài 6:
Nạp Chồng Toán Tử và Kế Thừa
(2)Nội dung
2
Nạp chồng toán tử (Operator Overloading) Hàm
bạn (Friend Functions)
Kế thừa (Inheritance)
(3)1 Nạp chồng toán tử
(4)Mục tiêu
4
Nạp chồng toán tử cơ bản
Tốn tử hai ngơi (binary operators) Tốn tử một ngơi (unary operators) Nạp chồng bằng hàm thành viên
(5)L
ớ
p
M
on
(6)Giới thiệu nạp chồng toán tử
6
Những toán tử như +,-, %, == etc thực những hàm! Các hàm đặc biệt được gọi với cú pháp khác so với
cách gọi hàm thông thường
Gọi hàm thông thường:
Tên_Hàm (Danh_Sách_Đối_Số)
Với tốn tử: ví dụ, x + 7, “+” tốn tử ngơi (binary
operator) với x, toán hạng (operands)
Thử viết theo cách gọi hàm thông thường: +(x,7)
“+” tên hàm
x, tham số hàm
(7)Tại dùng nạp chồng toán tử?
Những toán tử được xây dựng sẵn
Ví dụ, +, -, = , %, ==, /, *
Đã thao tác được với kiểu dựng sẵn của C++
Nhưng liệu có thể thực hiện phép + với
đối tượng của lớp Money?, giống như:
money1 + money2;
Để làm được điều này, phải nạp chồng
(8)Cơ bản về nạp chồng
8
Nạp chồng toán tử
Tương tự như với nạp chồng hàm Tốn tử bản thân tên của hàm
Ví dụ khai báo
const Money operator + (const Money& amount1, const Money& amount2);
Nạp chồng toán tử + với toán hạng đối tượng kiểu
Money
Giá trị trả lại một kiểu Money
Mục đích: cho phép thực hiện phép + hai đối tượng
(9)Nạp chồng toán tử “+”
const Money operator + (const Money& amount1, const Money& amount2);
Chú ý: hàm nạp chồng tốn tử “+” khơng phải hàm
thành viên lớp Money
Định nghĩa, cài đặt hàm phức tạp so với phép
(10)Định nghĩa nạp chồng toán tử “+” cho lớp Money