Thư viện chuẩn C++ dùng lại thư viện chuẩn C với một số điều chỉnh nhỏ để giúp nó hoạt động tốt hơn với ngôn ngữ C++. Một bộ phận lớn khác của thư viện C++ dựa trên Thư viện tiêu bản chuẩn (hay còn gọi là STL - viết tắt từ chữ Standard Template Library). Thư viện này có nhiều công cụ hữu dụng như là các thùng chứa (thí dụ như vector, danh sách liên kết và biến lặp (tổng quát hóa từ khái niệm con trỏ) để cung cấp những thùng chứa này sự truy cập giống như là truy cập mảng. Xa hơn nữa, bảng (đa) ánh xạ (mảng kết hợp) và (đa) tập, tất cả được cung cấp để có thể xuất ra các giao diện tương thích. Do đó, có thể dùng tiêu bản để viết các thuật toán tổng quát mà chúng làm việc được với bất kì thùng chứa nào hay với bất kì dãy nào được định nghĩa bởi biến lặp. Giống như C, các tính năng của thư viện này thì được truy cập bởi việc sử dụng lệnh dẫn hướng #include
để bao gồm một tập tin tiêu đề chuẩn. C++ cung ứng 69 tiêu đề chuẩn, trong đó có 19 tiêu đề không còn hiệu lực nữa.
Vì thư viện chuẩn được thiết kế bởi những chuyện gia hàng đầu và đã được chứng minh trong toàn bộ lịch sử kĩ nghệ, các thành phần của thư viện này được khuyến cáo sử dụng thay vì dùng những phần viết tay bên ngoài hay những phương tiện cấp thấp khác. Thí dụ, dùng std:vector
hay std::string
thay vì dùng kiểu mảng đơn thuần sẽ không những là cho "đời sống dễ thở hơn", mà còn là một cách hữu hiệu để viết phần mềm được an toàn và linh hoạt hơn.
STL nguyên là một thư viện của hãng HP và sau đó là của SGI, trước khi nó được nhận vào thành chuẩn C++. Tiêu chuẩn thì không tham chiếu nó bằng cái tên "STL", khi đa phần nó chỉ là bộ phận tiêu chuẩn. Tuy vậy, nhiều người vẩn dùng khái niệm "STL" này để phân biệt nó với phần còn lại của thư viện C++ như là IOstream
, quốc tế hóa (kí tự và ngôn ngữ trình bày), chẩn đoán, thư viện C, v.v..
Một đề án mang tên STLPort, dựa cơ sở trên SGI STL, bảo trì các thiết lập mới của STL, IOStream
và string
. Các đề án khác cũng có những xây dựng đặc thù riêng của thư viện chuẩn với các mục tiêu thiết kế khác nhau. Mỗi nơi sản xuất hay phổ biến nhà trình dịch C++ đều bao gồm một sự thiết lập của thư viện, vì đây là phần quan trọng của tiêu chuẩn và lại là kỳ vọng của người lập trình.
C++ xây dựng tính đóng bằng cách cho phép mọi thành viên của một lớp có thể được khai báo bằng các từ khoá public, private,
hay protected
. (xem thêm các khái niệm cơ bản trong ngôn ngữ OOP). Một thành viên private
chỉ có thể được truy cập từ các phương pháp (hàm nội tại) là thành viên của chính lớp đó hay được truy cập từ các hàm và các lớp được đặc biệt cho phép sử dụng bằng cách dùng từ khóa friend
. Một thành viên protected
của một lớp sẽ có thể truy cập được từ các thành viên (nào đó) của các lớp có tính kế thừa của nó hay cũng có thể truy cập được từ các thành viện của chính lớp đó và của mọi thành viên friend
.
Nguyên lý của OOP là mọi và chỉ có các hàm là có thể truy cập được đến các giá trị nội tại của cùng lớp thì nên có tính đóng. C++ có hỗ trợ đặc tính này (qua các hàm thành viên và các hàmfriend
), nhưng C++ lại không là yêu cầu bắt buộc: người lập trình có thể khai báo các phần hay tất cả các giá trị nội tại là công cộng (public), và cũng cho phép làm cho toàn bộ lớp trở thành công cộng. Lí do là vì C++ hỗ trợ không chỉ lập trình hướng đối tượng mà còn hỗ trợ các mẫu hình yếu hơn như là lập trình mô-đun.
Một thói quen tốt cần có trong thực hành là khai báo mọi dữ liệu đều là riêng tư (private), hay ít nhất ở dạng bảo tồn, và sau đó, tạo ra một giao diện nhỏ (thông qua các phương pháp) cho người dùng của lớp này dấu đi các chi tiết thiết lập bên trong.
C++ tiếp tục phát triển để thỏa mản các nhu cầu tương lai. Đặc biết nhóm Boost.org, làm việc trên hầu hết các dạng và các khuyến cáo trong C++ cho Hội đồng Tiêu chuẩn C++ về các chức năng hoạt động tốt và các chức năng cần được cải thiện. Công việc hiện tại cho thấy bản năng đa mẫu hình của C++ sẽ ngày càng nhiều. Thí dụ: Công việc của Boost.org mở rộng rất mạnh chức năng của C++ và khả năng siêu lập trình (metaprogramming) của nó. Chuẩn C++ không đề cập về sự thiết lập của mã hóa tên (name decoration), xử lí ngoại lệ và sự thiết lập các tính năng đặc biệt khác, tạo mã đối tượng mà nó được làm ra từ những trình dịch không tương thích khác. Dù vậy, vẫn có những tiêu chuẩn khác từ các nhà sản xuất dùng cho những máy hay OS riêng biệt nhằm tiêu chuẩn hóa các trình dịch trên các nền tảng đó, thí dụ [1].
Các trình dịch cho đến gần đây (2004) vẫn lưỡng lự khi hỗ trợ toàn bộ chuẩn C++, đặc biệt là trong những lãnh vực của tiêu bản (đây là phần ngôn ngữ đã được công nhận hoàn toàn từ hội đồng tiêu chuẩn. Một điểm các biệt đáng nói nữa là từ khóa export
, nhằm cho phép các định nghĩa của các tiêu bản được tách rời khỏi các khai báo của chúng. Trình dịch đầu tiên thiết kế kiểu này là Comeau C++, đầu năm 2003 (5 năm sau khi tiêu chuẩn đã được phát hành!); trong năm 2004, phiên bản beta trình dịch của Borland C++ Builder X cũng hỗ trợ dùng export
. Cả hai trình dịch đó dựa trên mặt ngoài của EDG C++. Cũng cần lưu ý rằng nhiều sách cung cấp mã thí dụ cho việc thiết lập từ khóa export
(Ivor Horton's Beginning ANSI C++, pg. 827) mà lại không dịch được, nhưng lại cũng không có tham khảo vấn dề này với việc (khó khăn) đã nêu trên. Những trình dịch khác như là Microsoft Visual C++ và GCC thì hoàn toàn không hỗ trợ nó. Herb Sutter, thư kí hội đồng tiêu chuẩn C++, có khuyến cáo rằng export
sẽ được hủy bỏ trong các phiên bản tương lai của chuẩn C++ [2]. Nhưng quyết định tối hậu đã được đưa ra là giữ nguyên nó trong chuẩn C++.
Nhiều vấn đề về tiêu bản bao gồm các xây dựng như đặc biệt hóa tiêu bản từng phần, mà đã được hỗ trợ một cách nghèo nàn trong nhiều năm sau khi chuẩn C++ đã ra đời.
- Tên file:
- Tài liệu về C++ cho người mới bắt đầu rất hay
- Phiên bản:
- N/A
- Tác giả:
- N/A
- Website hỗ trợ:
- N/A
- Thuộc chủ đề:
- Danh Mục » Ngành cơ điện tử » Kỹ thuật lập trình
- Gửi lên:
- 12/08/2013 22:21
- Cập nhật:
- 12/08/2013 22:21
- Người gửi:
- haihoang_boy
- Thông tin bản quyền:
- N/A
- Dung lượng:
- N/A
- Đã xem:
- 1300
- Đã tải về:
-
1
- Đã thảo luận:
- 0
Tài Liệu Mới Nhất
- Hệ Thống Máy Và Thiết Bị Lạnh - Pgs.Ts.Đinh Văn Thuận & Võ Chí Chính, 456 Trang
07.10.2016 09:10 - Giáo trình cảm biến công nghiệp - ĐHBK Đà Nẵng
27.09.2016 09:01 - Download phần mềm triển khai hình gò
26.08.2016 12:09 - Download Autocad 2017 Full Key Crack + Keygen + Hướng dẫn cài đặt
25.08.2016 09:50 - [Tài liệu] Vibration chart: Bảng tra các đồ thị rung động dạng phổ
20.08.2016 08:53 - [Tài liệu] Tìm hiểu đồ gá trên máy CNC - ĐHGTVT
18.08.2016 08:40 - [Tài liệu] Tổng quan về máy CNC và lập trình CNC cho máy phay, máy tiện
18.08.2016 08:25 - Giáo trình Maintenance Engineering Handbook
16.08.2016 08:43 - Strategic Six Sigma - Best Practices from the Executive Suite
15.08.2016 04:54 - Handbook On Green Productivity
15.08.2016 04:49