[r]
(1)Ngơn ngữ lập trình
Bài 4:
Cấu trúc lớp
Giảng viên: Lê Nguyễn Tuấn Thành Email: thanhlnt@tlu.edu.vn
Bộ Môn Công Nghệ Phần Mềm – Khoa CNTT
(2)Nội dung
1 Kiểu cấu trúc Kiểu lớp
(3)1 KIỂU CẤU TRÚC
(4)Mục tiêu học
Các kiểu cấu trúc (structure)
(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 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
(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ụ:
struct CDAccountV1 {
(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
(8)(9)(10)(11)Lưu ý
Khi định nghĩa cấu trúc phải kết thúc dấu ; (semicolon)
struct WeatherData {
(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ệ
(13)Sử dụng cấu trúc đối số hàm Truyền biến kiểu cấu trúc vào hàm giống kiểu
cơ sở khác
Tham trị (pass-by-value)
Tham chiếu (pass-by-reference) Hoặc kết hợp hai
(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; };
(15)Bài tập
Viết chương trình khai báo cấu trúc Student gồm thông tin:
Mã sinh viên: string
Tên sinh viên: string / char[20]
Lớp: string
Điểm trung bình: float
(16)2 KIỂU LỚP
(17)Mục tiêu học
Định nghĩa lớp Hàm thành viên
Thành viên public private Hàm accessor mutator
(18)Định nghĩa lớp (1/2)
Tương tự cấu trúc, NHƯNG
Lớp liệu thành viên cấu trúc,
Lớp bao gồm HÀM thành viên để thao tác
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Ý
(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 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