Tải bản đầy đủ (.pdf) (10 trang)

Bài giảng Ngôn ngữ lập trình - Bài 6: Nạp chồng toán tử và kế thừa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (664.84 KB, 10 trang )

<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-->

×