Bài giảng phương pháp lập trình hướng đối tượng chương 3 hàm dựng, hàm hủy, hàm toán tử - Pdf 32

Chương 2: Hàm dựng,
Hàm hủy, Hàm toán tử

Phương pháp lập trình hướng đối tượng .

1


Nội dung





Hàm dựng.
Hàm hủy.
Hàm toán tử.
Bài tập.

Phương pháp lập trình hướng đối tượng .

2


Nội dung





Hàm dựng.

“Làm khai sinh” cho đối tượng!
HocSinh
Họ

tên??
Điểm văn??
Điểm toán??

Phương pháp lập trình hướng đối tượng .

Hàm dựng ra đời!!
4


Hàm dựng


Tính chất hàm dựng (constructor):
Bắt buộc gọi khi tạo đối tượng.
 Có thể nạp chồng nhiều hàm dựng.
 Trong C++, hàm dựng có tên trùng tên lớp.


class PhanSo
{
private:
int
m_tuSo;
int
m_mauSo;


class PhanSo
{
private:
int
m_tuSo;
int
m_mauSo;
public:
PhanSo();
};
Phương pháp lập trình hướng đối tượng .

void main()
{
PhanSo p;
PhanSo q = new PhanSo;
}

6


Hàm dựng


Hàm dựng sao chép (copy constructor):
Có tham số là đối tượng cùng lớp.
 Dùng tạo đối tượng từ đối tượng cùng loại.
 Lớp không có hàm dựng sao chép.
 Trình biên dịch cung cấp.


Dr. Guru khuyên:


Một lớp nên có tối thiểu 3 hàm dựng:




Hàm dựng mặc định.
Hàm dựng có đầy đủ tham số.
Hàm dựng sao chép.

class PhanSo
{ private:
int
m_tuSo;
int
m_mauSo;
public:
PhanSo();
PhanSo(int tuSo, int mauSo);
PhanSo(const PhanSo &p);
};
Phương pháp lập trình hướng đối tượng .

8


Nội dung

Làm “khai tử” cho đối tượng.

HocSinh
Họ

tên
Điểm văn
Điểm toán
Thu

hồi

Phương pháp lập trình hướng đối tượng .


Ròrỉrỉbộ
bộnhớ!!
nhớ!!

Hàm hủy vào cuộc!!
10


Hàm hủy


Tính chất hàm hủy (destructor):
Tự động gọi khi đối tượng bị hủy.
 Mỗi lớp có duy nhất một hàm hủy.
 Trong C++, hàm hủy có tên ~<Tên lớp>




Hàm dựng.
Hàm hủy.
Hàm toán tử.
Bài tập.

Phương pháp lập trình hướng đối tượng .

12


Hàm toán tử


Khái niệm hàm toán tử:
Có thể dùng toán tử đặt tên hàm?
 Trong C++, dùng từ khóa operator.


PhanSo operator +(const PhanSo &p1, const PhanSo &p2);


Hệ quả?


Định nghĩa lại cách thực hiện toán tử.
PhanSo p1, p2;
PhanSo p3 = p1 + p2;

Không thể tạo toán tử mới.
 Không thể định nghĩa lại toán tử trên kiểu cơ bản.
 Ngôi của toán tử giữ nguyên.
 Độ ưu tiên của toán tử không đổi.
 Đôi khi gây nhầm lẫn!!


Phương pháp lập trình hướng đối tượng .

14


Hàm toán tử


Phân loại hàm toán tử:


Toán tử độc lập:



Không thuộc lớp nào.
Ngôi của toán tử là số tham số truyền vào.
PhanSo operator +(const PhanSo &p1, const PhanSo &p2);
bool operator >(const PhanSo &p1, const PhanSo &p2);



Toán tử thuộc lớp:

Tăng giảm

++, --

Dấu số học

+, -

Logic

!, ~

Con trỏ

*, &

Ép kiểu

int, float, double, …

Số học

+, -, *, /, %, +=, -=, *=, /=, %=

So sánh

>, <, ==, >=,

.*

Truy xuất con trỏ phần tử

::

Toán tử ::

?:

Toán tử điều kiện

#

Chỉ thị tiền xử lý

##

Chỉ thị tiền xử lý

Phương pháp lập trình hướng đối tượng .

17


Hàm toán tử


Dr. Guru khuyên:

 Mỗi lớp có thể có nhiều hàm dựng.




Hàm hủy:
Dọn dẹp bộ nhớ cho đối tượng.
 Tự động gọi khi đối tượng bị hủy.
 Mỗi lớp có duy nhất một hàm hủy.


Phương pháp lập trình hướng đối tượng .

19


Tóm tắt


Hàm toán tử:
Hàm có tên là toán tử.
 Dùng định nghĩa lại toán tử.
 Ràng buộc:








Phương pháp lập trình hướng đối tượng .

21


Bài tập


Bài tập 3.1:
Bổ sung vào lớp phân số những phương thức sau:
(Nhóm tạo hủy)
 Khởi tạo mặc định phân số = 0.
 Khởi tạo với tử và mẫu cho trước.
 Khởi tạo từ giá trị nguyên cho trước.
 Khởi tạo từ một phân số khác.
(Nhóm toán tử)
 Toán tử số học: +, -, *, /, =, +=, -=.
 Toán tử so sánh: >, <, ==, >=, >,
 Toán tử so sánh: >, <, ==, >=, >,


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status