Bài giảng Ngôn ngữ lập trình: Khuôn mẫu, cung cấp cho người học những kiến thức như: Khuôn mẫu hàm; Khuôn mẫu lớp; Khuôn mẫu và thừa kế. Mời các bạn cùng tham khảo!
NGƠN NGỮ LẬP TRÌNH KHN MẪU fit.hnue.edu.vn/~dungntp/NNLT 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Nội dung • Khuôn mẫu hàm • Khuôn mẫu lớp • Khuôn mẫu thừa kế 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Xét ví dụ • Viết chương trình cho phép: – Nhập vào số nguyên a, b Thực việc hoán đổi giá trị biến a, b cho – Nhập vào ký tự x, y Thực việc hoán đổi giá trị biến x, y cho – Nhập vào chuỗi str1, str2 Thực việc hoán đổi giá trị biến str1, str2 cho – …… 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN => phải nạp chồng hàm hoán đổi sau 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Nếu yêu cầu hoán đổi đối tượng khác sao? 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Sử dụng Khuôn mẫu hàm 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Khuôn mẫu hàm • Là mơ hình (mẫu) giúp tạo định nghĩa chung cho hàm Chỉ khác kiểu liệu mà chúng thao tác • Khn mẫu hàm khác với nạp chồng chỗ đoạn mã định nghĩa hàm cần viết MỘT LẦN 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Cú pháp khn mẫu hàm • Sử dụng tiền tố khn mẫu template • Sau đến khai báo định nghĩa hàm mà sử dụng T kiểu thay cho kiểu 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Như ví dụ • Thay tất hàm hoán đổi MỘT mẫu hàm sau: 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Ví dụ • Lúc hàm main gọi: – doicho(a, b) T hiểu kiểu int – doicho(a1, b1) T hiểu kiểu bool – doicho(a2, b2) T hiểu kiểu string 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 10 Định nghĩa hàm thành viên • Giống định nghĩa hàm thành viên lớp thơng thường • Chỉ khác chỗ khn mẫu hàm • => Cần ý: – Phải có tiền tố khn mẫu trước định nghĩa – Tên lớp trước toán tử phân giải phạm vi :: 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 19 Sử dụng khn mẫu lớp • Khn mẫu lớp sử dụng thay cho chỗ sử dụng kiểu chuẩn • Để tạo đối tượng lớp • Để làm tham số cho hàm 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 20 Ví dụ sử dụng khuôn mẫu lớp để tạo đối tượng lớp 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 21 Ví dụ sử dụng khn mẫu lớp để tạo đối tượng lớp • A đối tượng khn mẫu lớp cap • Sử dụng A đối tượng lớp thông thường 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 22 Ví dụ sử dụng khn mẫu lớp để làm tham số cho hàm Khuôn mẫu lớp cap làm tham số cho hàm tong Truyền đối tượng khuôn mẫu lớp cap vào hàm tong 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 23 Khuôn mẫu kế thừa • Có thể sử dụng khn mẫu thừa kế – Tạo lớp khuôn mẫu dẫn xuất từ lớp khuôn mẫu sở 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 24 Ví dụ kế thừa khn mẫu lớp • Khai báo khn mẫu lớp SoPhuc kế thừa từ khuôn mẫu lớp cap 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 25 Ví dụ kế thừa khn mẫu lớp • Định nghĩa hàm thành phần cho khuôn mẫu SoPhuc 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 26 Ví dụ kế thừa khn mẫu lớp • Sử dụng khn mẫu lớp SoPhuc cho kiểu int float: 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 27 Bạn dùng khuôn mẫu lớp 03/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 28 Vector • Vector kiểu khn mẫu lớp • Vector cho phép tạo loại mảng với kiểu liệu khác • Vector cho phép thay đổi kích thước mảng chương trình chạy 03/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 29 Vector • Để sử dụng vector cần khai báo thư viện vector câu lệnh #include • Một số cách khai báo vector vector a; Khai báo vector a có kiểu int vector a(10); Khai báo vector a có 10 phần tử kiểu int vector a(10, 2); khai báo vector a có 10 phần tử kiểu int, khởi tạo cho 10 phần tử 03/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 30 Một số toán tử phương thức khn mẫu lớp vector Tốn tử/Phương thức = [chỉ-số] size() resize(n) at(chỉ-số) front() back() Mô tả Gán vector Truy nhập tới phần tử vector theo số Lấy số phần tử vector Thay đổi số phần tử vector (có n phần tử) Truy nhập tới phần tử vector theo số Truy nhập vào phần tử vector Truy nhập vào phần tử cuối vector 03/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 31 Một số toán tử phương thức khuôn mẫu lớp vector Phương thức push_back(pt) pop_back() insert(pos, giatri) insert(pos, n, giatri) erase(pos) erase(vt1, vt2) clear() swap(vector2) Mô tả Thêm phần tử pt vào cuối dãy Số phần tử dãy tăng lên Xoá phần tử khỏi dãy Số phần tử dãy giảm Chèn phần tử vào vị trí pos dãy Chèn n phần tử vào vị trí pos dãy Xóa phần tử vị trí thứ pos dãy Xóa phần tử từ vị trí đến vị trí dãy Xóa hết phần tử vector Hoán đổi vector 03/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 32 Bài tập 03/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 33 ... Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 23 Khn mẫu kế thừa • Có thể sử dụng khn mẫu thừa kế – Tạo lớp khuôn mẫu dẫn xuất từ lớp khuôn mẫu sở 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN... khác sao? 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Sử dụng Khuôn mẫu hàm 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN Khn mẫu hàm • Là mơ hình (mẫu) giúp tạo định nghĩa chung... 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 26 Ví dụ kế thừa khn mẫu lớp • Sử dụng khn mẫu lớp SoPhuc cho kiểu int float: 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 27 Bạn dùng khuôn