[r]
(1)NGƠN NGỮ LẬP TRÌNH Bài 4:
Cấu trúc lớp
(2)NỘI DUNG
1 Kiểu cấu trúc Kiểu lớp
3 Hàm tạo & Hàm hủy
2
(3)(4)MỤC TIÊU BÀI HỌC
Các kiểu cấu trúc (structure)
Sử dụng cấu trúc như đối số của hàm Khởi tạo cấu trúc
(5)CẤU TRÚC
Kiểu liệu tổng hợp thứ hai (sau mảng): struct Nhớ lại: kiểu liệu tổng hợp nghĩa “nhóm dữ
liệu lại với nhau” (grouping)
Mảng (array): tập hợp giá trị CÙNG KiỂU
Cấu trúc (structure): tập hợp giá trị KHÁC KiỂU
Được coi đối tượng đơn, giống mảng Điểm khác chính: phải ĐỊNH NGHĨA cấu
trúc TRƯỚC khai báo biến
(6)ĐỊNH NGHĨA CẤU TRÚC Định nghĩa cấu trúc kiểu toàn cục Cú pháp
struct tên_cấu_trúc { kiểu_1 tên_biến_1; kiểu_2 tên_biến_2; … kiểu_n tên_biến_n; };
Ví dụ:
(7)KHAI BÁO BIẾN CẤU TRÚC
Khi kiểu cấu trúc định nghĩa, dùng
để khai báo biến cho kiểu cấu trúc
ví dụ CDAccountV1 account;
Giống khai báo kiểu sở
Biến sau khai báo bao gồm giá trị thành
viên (member values)
Truy cập đến thành viên cấu trúc sử
dụng dấu
vd: account.balance, account.interestRate, account.term
Các cấu trúc khác có tên thành viên
trùng
(8)CHƯƠNG TRÌNH VỚI CẤU TRÚC (1/3)
(9)CHƯƠNG TRÌNH VỚI CẤU TRÚC (2/3)
(10)CHƯƠNG TRÌNH VỚI CẤU TRÚC (3/3)
(11)LƯU Ý
Khi định nghĩa cấu trúc phải kết thúc dấu ;
(semicolon)
struct WeatherData {
double temperature; double windVelocity; }; YÊU CẦU dấu ;
(12)GÁN CẤU TRÚC
Giả sử khai báo biến: CDAccountV1 account1,
account2;
Phép gán account1 = account2; hợp lệ
Copy giá trị biến thành viên từ account1 sang
account2
(13)SỬ DỤNG CẤU TRÚC NHƯ ĐỐI SỐ CỦA HÀM
Truyền biến kiểu cấu trúc vào hàm giống
kiểu sở khác
Tham trị (pass-by-value)
Tham chiếu (pass-by-reference) Hoặc kết hợp hai
Có thể sử dụng kiểu cấu trúc kiểu trả
hàm
(14)KHỞI TẠO BIỂN KIỂU CẤU TRÚC
Có thể khởi tạo biến kiểu cấu trúc khai báo
struct Date {
int month; int day; int year; };
Date dueDate = {12, 31, 2003};
(15)BÀI TẬP
Viết chương trình khai báo cấu trúc
Sinh_Vien gồm thông tin:
Mã sinh viên: int
Tên sinh viên: char[20]
Điểm trung bình: float
Nhập giá trị cho N sinh viên (N < 10), hiển thị thông tin sinh viên cho biết sinh viên có điểm trung bình lớn
(16)(17)MỤC TIÊU BÀI HỌC
Định nghĩa lớp Hàm thành viên
Thành viên public private Hàm accessor mutator
Cấu trúc lớp
(18)ĐỊNH NGHĨA LỚP (1/2)
Tương tự cấu trúc, NHƯNG
Lớp khơng có liệu thành viên cấu trúc, Lớp bao gồm HÀM thành viên để thao tác
trên liệu
Khái niệm LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
(object-oriented programming - OOP)
Nhìn góc độ đối tượng (object) Object: gồm DỮ LIỆU + XỬ LÝ
Trong C++, biến kiểu lớp đối
tượng
(19)ĐỊNH NGHĨA LỚP (2/2)
Định nghĩa tương tự cấu trúc
class DayOfYear tên kiểu lớp {
public:
void output(); tên hàm thành viên! int month;
int day; };
Lớp kiểu đầy đủ (full-fledged type), giống
như kiểu liệu sở int, double, float,
etc.
Tham số dùng cho kiểu lớp là:
Tham trị (pass-by-value)
(20)KHAI BÁO ĐỐI TƯỢNG
Khai báo giống biến kiểu sở
đối tượng biến kiểu lớp
Ví dụ: DayOfYear today, birthday;
Khai báo đối tượng today, birthday lớp
DayOfYear
Một đối tượng bao gồm:
Dữ liệu vd month, day
Thao tác (hàm thành viên) vd output()