Professional Documents
Culture Documents
Chuong 2 - Class and Object - O
Chuong 2 - Class and Object - O
9
LỚP
THÀNH PHẦN PHƯƠNG THỨC
(HÀM )
Hàm thành phần có thể không có giá trị trả về
(kiểu void) hoặc có thể trả về một giá trị có
kiểu bất kỳ, kể cả giá trị kiểu đối tượng, con trỏ
Ẩn một điểm
12
LỚP
THÀNH PHẦN PHƯƠNG THỨC
(HÀM )
Ví dụ: Xậy dựng lớp DIEM.
class DIEM
{
16
LỚP
CON TRỎ
THIS
Mỗi hà m thà nh phần của lớp có một tham số ẩn,
đó là con trỏ this. Con trỏ this trỏ đến từng đối
tượng cụ thể.
17
LỚP
CON TRỎ
THIS trỏ this là tham số thứ nhất của hà m
Con
thà nh phần. Khi một lời gọi hà m thà nh
phần được phá t ra bởi một đối tượng thì
18
LỚP
HÀM BẠN
Hà m bạn khô ng phải là hà m thà nh phần
của lớp.
20
LỚP
HÀM BẠN
Khai bá o hà m bạn (cá ch 1):
class A
{
21
LỚP
HÀM BẠN
Khai bá o hà m bạn (cá ch 1):
// Xâ y dựng cá c hà m f1,f2
30
LỚP
HÀM TẠO
Ví dụ:
#include <conio.h>
#inlcule <iostream.h>
39
LỚP
HÀM TẠO
Trong ví dụ trê n, câ u lệnh DIEM d2;
trong hà m main() sẽ bị chương trình dịch
bá o lỗi. Bởi vì lệnh nà y sẽ gọi tới hà m tạo
40
LỚP
HÀM TẠO
Ví dụ:
#include <conio.h>
#include <iostream.h>
66
LỚP
HÀM HỦY
Ví dụ:
class DATHUC
67
LỚP
HÀM HỦY
Ví dụ:
class DATHUC
68
LỚP
HÀM HỦY
Ví dụ:
class DATHUC
69
LỚP
HÀM HỦY
Ví dụ:
#include <iostream.h>
Ví dụ:
int Count::counter;
Ví dụ:
void Count::display_total()
74
ĐỐI TƯỢNG
BIẾN
Mỗi đối tượng sau khi khai bá o sẽ
được cấp phá t một vù ng nhớ riêng để
76
ĐỐI TƯỢNG
BIẾN
Ví dụ:
#include <conio.h>
#include <iostream.h>
class DIEM
}; 82
ĐỐI TƯỢNG
BIẾN
Ví
dụ: Viết chương trình xâ y dựng lớp số
phức.
sophuc sophuc::tong(sophuc c1, sophuc c2)
ten_con_tro[chi_so].ten_thuoc_tinh
89
ĐỐI TƯỢNG
MẢNG VÀ CON
TRỎ
Ví dụ: Viết chương trình quản lý mặt hà ng gồm
mã hà ng và đơn giá bằng định nghĩa lớp.
94
BÀI TẬP CHƯƠNG
2
Bài tập 1: Xây dựng lớp thời gian Time. Dữ liệu
thành phần bao gồm giờ, phút giây. Các hàm
thành phần bao gồm: hàm tạo, hàm truy cập dữ
97
ĐỐI TƯỢNG
TOÁN TỬ TẢI BỘI (OPERATOR
OVERLOADING)
Định nghĩa: Cá c toá n tử cù ng tê n thực hiện nhiều
chức nă ng khá c nhau được gọi là toá n tử tải bội.
Dạng định nghĩa tổng quá t của toá n tử tải bội như
98
ĐỐI TƯỢNG
TOÁN TỬ TẢI BỘI (OPERATOR
OVERLOADING)
Định nghĩa:
operator op (danh sách tham số) gọi là
99
ĐỐI TƯỢNG
TOÁN TỬ TẢI BỘI (OPERATOR
OVERLOADING)
Danh sá ch tham số được khai bá o tương tự
khai bá o biến nhưng phải tuâ n theo những
quy định sau:
101
ĐỐI TƯỢNG
TOÁN TỬ TẢI BỘI (OPERATOR
OVERLOADING)
Chú ý:
⚫ Trong C++ ta có thể đưa ra nhiều định nghĩa mới
cho hầu hết cá c toá n tử trong C++, ngoại trừ những
102
ĐỐI TƯỢNG
TOÁN TỬ TẢI BỘI (OPERATOR
OVERLOADING)
Chú ý:
⚫ Mặc dầu ngữ nghĩa của toá n tử được mở rộng
nhưng cú phá p, cá c quy tắc vă n phạm như số
104
ĐỐI TƯỢNG
TOÁN TỬ TẢI BỘI (OPERATOR
OVERLOADING)
Ví dụ: Xâ y dựng lớp số phức
friend sophuc operator +(sophuc c1, sophuc c2)
{
} 106
ĐỐI TƯỢNG
TOÁN TỬ TẢI BỘI (OPERATOR
OVERLOADING
) bội trê n lớp chuỗi ký tự
Ví dụ: Toá n tử tải
#include <iostream.h>
#include <string.h>
#include <conio.h>
109
ĐỐI TƯỢNG
TOÁN TỬ TẢI BỘI (OPERATOR
OVERLOADING)
Ví dụ: Toá n tử tải bội trên lớp chuỗi ký tự
int string::operator ==(string s2)
110
ĐỐI TƯỢNG
TOÁN TỬ TẢI BỘI (OPERATOR
OVERLOADING)
Ví dụ: Toá n tử tải bội trên lớp chuỗi ký tự
main()
{
114
THÀNH PHẦN TĨNH
DỮ LIỆU
Khi đó , khai bá o:
A u, v; // Khai bá o 2 đối tượng
115
THÀNH PHẦN TĨNH
KHAI BÁO VÀ KHỞI GÁN GIÁ TRỊ CHO THÀNH PHẦN
TĨNH
116
THÀNH PHẦN TĨNH
PHƯƠNG THỨC (HÀM)
Hàm thành phần tĩnh là chung cho toàn
bộ lớp và không lệ thuộc vào một đối
119
THÀNH PHẦN TĨNH
VÍ DỤ
Ví dụ (tiếp):
void main()
120
BÀI TẬP CHƯƠNG
2 Bài tập 4: Xâ y dựng lớp Sinhvien để quản lý
họ tê n sinh viê n, nă m sinh, điểm thi 9 mô n học
của cá c sinh viê n. Cho biết sinh viê n nà o được
121
BÀI TẬP CHƯƠNG
2 Bài tập 5: Viết chương trình thực hiện cá c yêu
cầu sau đâ y:
122
MỤC TIÊU
Trình bà y phương phá p định nghĩa lớp,
thà nh phần lớp, phạm vi truy xuất thà nh
phần, cá c hà m đặc biệt của lớp: hà m bạn,