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

Bài giảng Ngôn ngữ lập trình: Bài 6 - Lê Nguyễn Tuấn Thành - Trường Đại Học Quốc Tế Hồng Bàng

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 (527.64 KB, 10 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>N</b>

<b>GƠN</b>

<b>NG</b>

<b>Ữ</b>

<b>L</b>

<b>Ậ</b>

<b>P</b>

<b>TRÌNH</b>



<b>Bài 6: </b>



<b>Nạp Chồng Toán Tử </b>


<b>và K</b>

<b>ế</b>

<b> Th</b>

<b>ừ</b>

<b>a </b>



<b>Giảng viên: Lê Nguyễn Tuấn Thành </b>
<b>Email: </b>


<b>Bộ Môn Công Nghệ Phần Mềm – Khoa CNTT </b>


</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

N

I

DUNG



N

p ch

ng toán t

(Operator Overloading)



và Hàm b

n (Friend Functions)



K

ế

th

a (Inheritance)



<b>2 </b>


</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

<b>1. N</b>

<b>Ạ</b>

<b>P</b>

<b>CH</b>

<b>Ồ</b>

<b>NG</b>

<b>TOÁN</b>

<b>T</b>

<b>Ử</b>

<b> </b>



<b>VÀ</b>

<b>HÀM</b>

<b>B</b>

<b>Ạ</b>

<b>N</b>



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

M

C

TIÊU



N

p ch

ng toán t

c

ơ

b

n



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



Hàm b

n và l

p b

n



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5></div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

G

I

I

THI

U

N

P

CH

NG

TỐN

T



Nh

ng tố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 toá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>+(x,7) </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

TỐN

T

?




Nh

ng tốn t

đ

ượ

c xây d

ng s

n (built-in



operators)



 Ví dụ, <i>+, -, = , %, ==, /, * </i>


 Đã thao tác được với các kiểu dựng sẵn của C++ (built-in


types)


Nh

ư

ng n

ế

u chúng ta mu

n th

c hi

n phép + v

i 2



đ

i t

ượ

ng c

a l

p SinhVien ?, gi

ng nh

ư

:



<i>sinh_vien1 + sinh_vien2;</i>


<b>Chúng ta có th</b>

<b>ể</b>

<b> n</b>

<b>ạ</b>

<b>p ch</b>

<b>ồ</b>

<b>ng nh</b>

<b>ữ</b>

<b>ng toán t</b>

<b>ử</b>



<b>này! </b>



 Để thao tác với kiểu của chúng ta!


</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

C

Ơ

B

N

V

N

P

CH

NG



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 nó là tên của hàm


Ví d

khai báo




<i>const Money operator + (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 Money


 Mục đích: cho phép thực hiện phép + trên hai đối


tượng của lớp Money


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

N

P

CH

NG

“+”



<i> const Money operator </i>

<i>+</i>

<i> (const Money& amount1, </i>


<i> const Money& amount2); </i>


 Chú ý: hàm nạp chồng tốn tử “+” này <b>khơng phải</b>


hàm 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 cộng thông thường (phải tính đến biến thành


viên, kiểm tra giá trị âm/dương, …)


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

V

Í

D

Đ

NH

NGHĨA

N

P

CH

NG

TOÁN

T




“+”

CHO

L

P

MONEY



</div>

<!--links-->

×