Bài giảng Ngôn ngữ lập trình Bài 3 Cấu trúc và lớp cung cấp các kiến thức giúp người học có thể hiểu đượ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. Mời các bạn cùng tham khảo.
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 Trường Đại Học Thủy Lợi NỘI DUNG Kiểu cấu trúc Kiểu lớp Hàm tạo & Hàm hủy Bài giảng có sử dụng hình vẽ sách “Practical Debugging in C++, A Ford and T Teorey, Prentice Hall, 2002” KIỂU CẤU TRÚC (STRUCT) MỤC TIÊU BÀI HỌC Các kiểu cấu trúc (structure) Sử dụng cấu trúc đối số hàm Khởi tạo cấu trúc 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 TRƯỚC khai báo biến ĐỊ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 { double balance; double interestRate; int term; }; KHAI BÁO BIẾN CẤU 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 TRÚC vd: account.balance, account.interestRate, account.term Các cấu trúc khác có tên thành viên trùng CHƯƠNG TRÌNH VỚI CẤU TRÚC (1/3) CHƯƠNG TRÌNH VỚI CẤU TRÚC (2/3) CHƯƠNG TRÌNH VỚI CẤU TRÚC (3/3) 10 BÀI TẬP CHO HÀM TẠO Sử dụng Hàm tạo Hàm hủy cho chương trình C++ khai báo lớp Sinh_Viên bao gồm: Dữ liệu: ID, Tên_Sinh_Viên, Điểm_Kiểm_tra_Giữa_Kỳ, Điểm_Kiểm_Tra_Cuối_Kỳ Các thao tác như: Nhập thông tin sinh viên In hình thông tin sinh viên Sửa thông tin sinh viên 59 CÁC PHƯƠNG PHÁP TRUYỀN THAM SỐ Hiệu truyền tham số Tham trị (call-by-value) Tham biến (call-by-reference) Một tham số tạo Dùng địa / tham chiếu (reference/placeholder) tham số Hai phương pháp khác không đáng kể với kiểu đơn giản NHƯNG với kiểu lớp, truyền tham chiếu có lợi ích đáng kể, đặc biệt với liệu lớn Để đảm bảo tham số không thay đổi, sử dụng từ khóa const 60 HÀM NỘI TUYẾN (INLINE FUNCTIONS) Trình biên dịch đặt code thân hàm nội tuyến vị trí mà hàm gọi thời gian biên dịch (compile time) Thường dùng để loại bỏ thời gian dụng (overhead) xảy gọi hàm, cho phép tăng tốc độ thực chương trình lại chiếm không gian nhớ nhiều Chỉ sử dụng cho hàm nhỏ dùng thường xuyên Ví dụ: max(a,b) Với hàm hàm thành viên lớp Sử dụng từ khóa inline khai báo hàm trước tên hàm Với hàm hàm thành viên lớp Đặt cài đặt (code) hàm BÊN TRONG định nghĩa lớp -> tự động inline 61 THÀNH VIÊN TĨNH (STATIC Biến thành viên tĩnh Mọi đối tượng lớp chia sẻ MỘT biến thành viên Khi đối tượng thay đổi giá trị biến -> đối tượng khác thấy thay đổi Hữu ích cho việc truy vết (tracking) MEMBERS) Một hàm thành viên có gọi thường xuyên không? Đối tượng tồn lần thời điểm? Khai báo cách đặt từ khóa static trước kiểu 62 VÍ DỤ HÀM NỘI TUYẾN (INLINE) inline double cube(double side) { return side * side * side } void main() { double dSideValue=4; cout