NGÔN NGỮ LẬP TRÌNH<br />
<br />
Nạp chồng toán tử, hàm bạn<br />
<br />
Giảng viên: Nguyễn Xuân Hùng<br />
Mobile: 0908 386 366<br />
Email: nguyenxuanhung@wru.vn<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi<br />
<br />
NỘI DUNG<br />
1. Nạp chồng toán tử<br />
2. Hàm bạn<br />
3. Lớp bạn<br />
<br />
2<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi<br />
<br />
12/18/2014<br />
<br />
MỤC TIÊU<br />
1. Căn bản về nạp chồng toán tử: nạp<br />
<br />
chồng dưới hàm thành viên<br />
2. Từ khóa friend và chuyển đổi kiểu tự<br />
động<br />
Hàm friend, lớp friend<br />
Hàm kiến tạo và chuyển kiểu tự động<br />
<br />
3. Tham chiếu và nạp chồng: toán tử >><br />
<br />
và >>, =, [], ++, -3<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi<br />
<br />
12/18/2014<br />
<br />
1 Nạp chồng<br />
Các toán tử chẳng hạn +, -, %, ==, vv... chẳng qua chỉ là<br />
các hàm được sử dụng với cú pháp hơi khác một chút. Chúng<br />
ta viết x + 7 chứ không phải là +(x, 7). Thế nhưng toán tử + là<br />
một hàm có hai đối số (hai toán hạng) và trả lại một giá trị đơn.<br />
Như vậy các toán tử là không thực sự cần thiết. Chúng ta có<br />
thể viết +(x, 7) hoặc add(x,7).<br />
“+” là tên hàm<br />
X, 7 là đối số<br />
Hàm “+” trả về “tổng” của các đối số.<br />
Đây chính là nạp chồng toán tử<br />
<br />
4<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi<br />
<br />
12/18/2014<br />
<br />
1 Nạp chồng<br />
Qui tắc nạp chồng toán tử<br />
Khi nạp chồng một toán tử thì phải có ít nhất một tham số<br />
(một toán hạng) của toán tử được nạp chồng có kiểu lớp<br />
Hầu hết các toán tử đều có thể được nạp chồng dưới dạng<br />
hàm thông thường, hàm thành viên của lớp, hoặc hàm bạn<br />
của lớp.<br />
Các toán tử sau đây chỉ có thể được nạp chồng dưới dạng<br />
thành viên (không tĩnh) của lớp: =, [], -> và ( ).<br />
Bạn không thể tạo ra một toán tử mới. Tất cả những gì bạn có<br />
thể làm đó là nạp chồng các toán tử đã có sẵn chẳng hạn: +, , *, /, %, vv…<br />
5<br />
<br />
Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi<br />
<br />
12/18/2014<br />
<br />