Video: Getting Started with C++17 Programming : The Standard Template Library Architecture | packtpub.com 2025
Thư viện C ++ tiêu chuẩn cung cấp đầy đủ các phép toán, thời gian, nhập / xuất, và DOS, để chỉ một số ít. Nhiều chương trình ban đầu mà bạn học khi mới bắt đầu sử dụng các hàm chuỗi ký tự được gọi là các chuỗi tập tin .
Các loại đối số cho nhiều chức năng này là cố định. Ví dụ, cả hai đối số để strcpy (char *, char *) phải là một con trỏ đến một chuỗi ký tự null-chấm dứt - không có gì khác có ý nghĩa.
Có nhiều chức năng được áp dụng cho nhiều loại. Xem xét ví dụ về hàm maximum () thấp nhất (), nó trả về tối đa hai đối số. Tất cả các biến thể sau có ý nghĩa:
int maximum (int n1, int n2); / / trả lại tối đa của hai số nguyên unsigned tối đa (unsigned u1, unsigned u2); tăng gấp đôi (gấp đôi d1, gấp đôi d2); char tối đa (char c1, char c2);
Ở đây, bạn muốn thực hiện tối đa () cho cả bốn trường hợp.
Tất nhiên, bạn có thể quá tải tối đa () với tất cả các phiên bản có thể:
gấp đôi tối đa (đôi d1, đôi d2) {return (d1> d2)? d1: d2;} int maximum (int n1, int n2) {return (n1> n2)? n1: n2;} char tối đa (char c1, char c2) {return (c1> c2)? c1: c2;} // … lặp lại cho tất cả các kiểu số khác …
Cách tiếp cận này hoạt động. Bây giờ C + + chọn kết hợp tốt nhất, tối đa (int, int) , cho một tham chiếu như tối đa (1, 2) . Tuy nhiên, tạo ra cùng một chức năng cho mỗi loại biến là một sự lãng phí tổng thời gian.
Mã nguồn cho tất cả các hàm tối đa (T, T) theo cùng một khuôn mẫu, trong đó T là một trong các kiểu số. Nó sẽ là thuận tiện nếu bạn có thể viết các chức năng một lần và để cho C + + cung cấp các loại T khi cần thiết khi chức năng được sử dụng. Trong thực tế, C ++ cho phép bạn thực hiện chính xác điều này. Chúng được gọi là mẫu định nghĩa .