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