Bài giảng Lập trình hướng đối tượng - Chương 2: Hàm dựng và Hàm hủy (Phần 3) - Hồ Tuấn Thanh

Hàm dựng và Hàm hủy  
Lập trình hướng đối tượng  
Hồ Tuấn Thanh – [email protected]  
10/9/18  
1
Toán tử  
2
Các toán tử thường gặp  
• Gán bằng: a=b;  
• Cộng, trừ, nhân, chia: c=a+b; d=a%b;  
• So sánh: a==b; c<=a;  
• +=, -=, *=, /=: a+=b;  
• ++, --: a++; ++a; b--; --b;  
• Nhập, xuất: cin>>a; cout<<b;  
• Ép kiểu float x=10.7; int n=(int)x;  
• []: int x=a[i];  
3
Định nghĩa lại toán tử  
• Các lớp tự định nghĩa: chưa có sẵn các toán tử  
• Muốn sử dụng toán tử: phải tự cài đặt toán tử  
• Cài đặt 1 toán tử được gọi là định nghĩa lại toán tử  
đó (operator overloading)  
• Về bản chất, operator cũng là một hàm.  
• VD: c=a+b tương đương với c=a.operator+(b);  
• VD: c+=b tương đương với c.operator+=(b);  
• Như vậy, đến lúc này, chúng ta đã cài đặt 4 loại  
hàm: hàm dựng, hàm hủy, hàm toán tử và các  
hàm khác.  
.
4
Các toán tử có thể overload  
5
Qui tắc bất thành văn  
• Chỉ cài đặt các toán tử có ý nghĩa với lớp.  
• Tránh thay đổi ý nghĩa nguyên thủy của toán tử  
đó.  
• Các cặp toán tử có cùng chức năng, ví dụ  
x=x+y và x+=y phải được viết cùng nhau và có  
cùng chức năng.  
6
=
7
Toán tử gán bằng  
Lưu ý  
• Toán tử gán bằng được gọi khi thực hiện gán  
bằng giữa 2 biến (b=a)  
• Cài đặt gần giống hàm dựng sao chép  
• Thêm kiểm tra this==&p để tránh trường hợp  
gán a=a  
• Kiểu trả về TenLop& (VD: PhanSo&) và nhớ  
return *this  
9
+, -, *, /  
10  
Toán tử +  
11  
Lưu ý  
• Không có dấu & ở kiểu trả về  
• Tham số: vế phải toán tử  
• Không cộng dồn vào đối tượng gọi toán tử  
(this)  
12  
<, <=, ==, !=, >=, >  
13  
Toán tử ==  
Lưu ý  
• Trả về kiểu int (1, 0) hoặc bool (true, false)  
• Tham số: vế phải toán tử  
15  
+=, -=, *=, /=  
16  
Toán tử +=  
17  
Lưu ý  
• Trả về có dấu &  
• PhanSo hoặc void: SAI  
• Tham số: vế phải toán tử  
• Cộng/trừ/nhân/chia dồn vào this  
• Nhớ có return *this  
18  
>>, <<  
19  
To
20  
Tải về để xem bản đầy đủ
pdf 38 trang myanh 19060 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 2: Hàm dựng và Hàm hủy (Phần 3) - Hồ Tuấn Thanh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_chuong_2_ham_dung_va_ham.pdf
  • cppL04P02-MyArray.cpp
  • cppMyArray.cpp
  • hMyArray.h