Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
525,86 KB
Nội dung
TRƯỜNG ĐẠI HỌC CHU VĂN AN BÁO CÁO LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Nhóm 11 – Đề tài 2009 Năm học 2009 - 2010 2009 BÁO CÁO LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG LỜI NÓI ĐẦU Trước tiên, chúng em xin gửi lời cảm ơn chân thành tới thầy Ngô Công Thắng – giảng viên trực tiếp giảng dạy, bảo chúng em trình học tập, đặc biệt làm đồ án Xin chân thành cảm ơn tới tất sinh viên, học viên học tập thực đồ án chia sẻ tài liệu góp ý giúp hồn thiện đề án Khi thực đề án, có tham khảo sử dụng viết nhiều thành viên diễn đàn giảng nhiều thày, cô giáo Chúng em xin phép sử dụng viết, giảng phần thuyết trình mà chúng em viết Xin chân thành cảm ơn đóng góp cộng đồng C việt, thành viên diễn đàn Đồ án chúng em chia thành phần sau: I Template C++ Định nghĩa template Function template Class template Tổng kết template II Stander Template Library Định nghĩa STL Thư viện chuẩn mảng chứa Thư viện chuẩn tổng quát Thư viện chuẩn dãy ký tự Thư viện chuẩn Streams Input/Output Thư viện chuẩn số Thư viện hỗ trợ ngơn ngữ lập trình Các thành phần STL III Lớp String chuẩn hàm thành viên Chào bạn! Nhóm 11 Chu Đức Cơng Lê Văn Hồn Nguyễn Văn Vương Nhóm 11 – Đề tài số Trang BÁO CÁO LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG I 2009 Template C++ Định nghĩa a Đặt vấn đề Khi viết chương trình, muốn tạo tập hợp đối tượng Các đối tượng loại khác loại VD: Mảng, danh sách, hàng đợi, ngăn xếp, tập hợp đối tượng xây dựng theo kiểu lớp chứa Tức lớp dùng để xây dựng tập hợp đối tượng Với kiến thức thơng thường, hồn tồn xây dựng lớp chứa Nhưng với kiểu phần tử, lại phải chỉnh sửa chương trình nguồn Cách làm khơng thuận tiện C++ cho phép định nghĩa lớp “tổng quát”, kiểu phẩn tử trở thành tham số Khi cần sử dụng, cần cung cấp kiểu cụ thể tham số tạo lớp b Định nghĩa: Template tính có C++, giới thiệu tổ chức đo lường chuẩn Mỹ (ANSI) Template mạnh phức tạp Template cha đẻ C++ (Bjarne Stroustrup) sáng tạo với mong muốn tạo chung ngôn ngữ lập trình hướng đối tượng khơng phải dành riêng cho C++ Template hàm, lớp thông thường, chúng complie dựa theo yêu cầu, có nghĩa code template function không biên dịch (complie) có thể (instantiation) đòi hỏi (sử dụng) Ngay lúc complier tạo hàm cụ thể cho kiểu liệu cụ thể việc chun mơn hố mẫu cho phép ta tạo thực thi đặc biệt làm việc với loại liệu xác định đó.nó cho phép ta lựa chọn liệu có tính chọn lọc Nhóm 11 – Đề tài số Trang BÁO CÁO LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2009 Nếu chương trình biên dịch C++ chưa tương thích với chuẩn template ANSI-C++ khơng thể sử dụng template VD template: template myType GetMax (myType a, myType b) { return (a>b?a:b); } Function tempalte Function template mẫu hàm cho phép tạo hàm chấp nhận kiểu liệu làm tham số trả giá trị với kiểu liệu tham số mà thực xây dựng nhiều hàm cách định nghĩa chồng hàm với tất kiểu liệu xuất Khai báo Function template sử dụng hai cách sau: template function_declaration; template function_declaration; Sự khác biệt hai kiểu khai báo mẫu việc sử dụng từ khoá class hay typename, khác chúng không rõ ràng hai có ý nghĩa trả kết Hàm mẫu gọi thông qua lời gọi hàm, nội dung hàm mẫu giống hàm bình thường, khác điều kiểu liệu hàm mẫu trả kiểu liệu đối số nạp vào hàm mẫu Chúng ta có cấu trúc gọi sau: function_name (parameters); Tức gọi tên hàm, định kiểu liệu tham số gọi tham số truyền vào hàm giống hàm bình thường, sẵn có C++ VD: Nhóm 11 – Đề tài số Trang BÁO CÁO LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 2009 // function template #include using namespace std; template T GetMax (T a, T b) { T result; result = (a>b)? a : b; return (result); } int main () { int i=5, j=6, k; long l=10, m=5, n; k=GetMax(i,j); n=GetMax(l,m); cout