Định nghĩa C++
C++ là một ngôn ngữ lập trình kiểu tĩnh, dữ liệu trừ tượng, phân biệt kiểu chữ thường chữ hoa mà hỗ trợ lập trình hướng đối tượng, lập trình thủ tục.
C++ được coi như là ngôn ngữ bậc trung (middle-level), khi nó kết hợp các đặc điểm và tính năng của ngôn ngữ bậc cao và bậc thấp.
C++ được phát triển bởi Bjarne Stroustrup năm 1979 tại Bell Labs ở Murray Hill, New Jersey, như là một bản nâng cao của ngôn ngữ C và với tên gọi đầu tiên là “C với các Lớp”, nhưng sau đó được đổi tên thành C++ vào năm 1983.
C++ là một Superset của C, và bất kỳ chương trình C nào cũng là một chương trình C++.
Ghi chú: Khi nói một ngôn ngữ lập trình là kiểu tĩnh khi việc kiểm tra kiểu được thực hiện trong thời gian biên dịch (compile-time), chứ không phải là run-time.
Thư việc chuẩn C++ (C++ Standard Library)
C++ chuẩn gồm 3 phần quan trọng:
Core Language cung cấp tất cả các khối bao gồm biến, kiểu dữ liệu (data type) và literals,…
Thư viện chuẩn C++ (C++ Standard Library) cung cấp tập hợp hàm đa dạng để thao tác file, string, …
Standard Template Library (STL) cung cấp tập hợp phương thức đa dạng để thao tác cấu trúc dữ liệu,…
ANSI Standard
ANSI Standard bảo đảm rằng C++ là portable, nghĩa là: code bạn viết cho compiler của Microsoft sẽ được biên dịch mà không xảy ra lỗi khi sử dụng một compiler trên Mac, UNIX, và Windows box hoặc một Alpha.
ANSI Standard đã tồn tại trong thời gian dài, và tất cả C++ compiler đều hỗ trợ ANSI Standard.
Miền sử dụng của C++:
C++ được sử dụng bởi hàng nghìn lập trình viên trong mỗi lĩnh vực ứng dụng cơ bản.
C++ đang được sử dụng phổ biến để viết device driver và các phần mềm khác mà dựa vào thao tác trực tiếp của phần cứng dưới ràng buộc về realtime.
C++ được sử dụng rộng rãi để đào tạo, nghiên cứu.
Bất cứ hai đã sử dụng Apple Macintosh hoặc một PC chạy trên Windows đã là gián tiếp sử dụng C++, bởi vì User Interface của các hệ thống này được viết bằng C++.
Một số điểm mạnh của C++:
Tính phổ biến: C++ là một trong những ngôn ngữ lập trình phổ biết trên thế giới
Tính thực thi nhanh: Nếu bạn rành C++ thì bạn có thể lập trình nhanh. Một trong những mục tiêu của C++ là khả năng thực thi. Và nếu bạn cần thêm các tính năng cho chương trình, C++ cho phép bạn dùng ngôn ngữ Assembly (Hợp ngữ) – Ngôn ngữ lập trình bậc thấp nhất – để giao tiếp trực tiếp với phần cứng của máy tính.
Thư viện đầy đủ: Có rất nhiều tài nguyên cho người lập trình bằng C++, bao gồm cả đồ hoạ API, 2D, 3D, vật lý các thiết bị âm thanh hỗ trợ giúp cho lập trình viên dễ dàng thực thi.
Đa mô hình: C++ cho phép bạn lập trình theo cấu trúc tuyến tính, hướng chức năng, hướng đối tượng đa dạng tuỳ theo yêu cầu của người lập trình
C có thêm những chức năng sau:
- Một ngôn ngữ cốt lõi đơn giản, với các chức năng quan trọng chẳng hạn như là những hàm hay việc xử lý tập tin sẽ được cung cấp bởi các bộ thư viện các thủ tục.
- Tập trung trên mẫu hình lập trình thủ tục, với các phương tiện lập trình theo kiểu cấu trúc.
- Một hệ thống kiểu đơn giản nhằm loại bỏ nhiều phép toán không có ý nghĩa thực dụng.
- Dùng ngôn ngữ tiền xử lý, tức là các câu lệnh tiền xử lý C, cho các nhiệm vụ như là định nghĩa các macro và hàm chứa nhiều tập tin mã nguồn (bằng cách dùng câu lệnh tiền xử lý dạng #include chẳng hạn).
- Mức thấp của ngôn ngữ cho phép dùng tới bộ nhớ máy tính qua việc sử dụng kiểu dữ liệu pointer.
- Số lượng từ khóa rất nhỏ gọn.
- Các tham số được đưa vào các hàm bằng giá trị, không bằng địa chỉ.
- Hàm các con trỏ cho phép hình thành một nền tảng ban đầu cho tính đóng và tính đa hình.
- Hỗ trợ các bản ghi hay các kiểu dữ liệu kết hợp do người dùng từ khóa định nghĩa struct cho phép các dữ liệu liên hệ nhau có thể được tập hợp lại và được điều chỉnh như là toàn bộ.
Một số chức năng khác mà C không có (hay còn thiếu) nhưng có thể tìm thấy ở các ngôn ngữ khác bao gồm:
- An toàn kiểu,
- Tự động thu dọn rác,
- Các lớp hay các đối tượng cùng với các ứng xử của chúng (xem thêm OOP),
- Các hàm lồng nhau,
- Lập trình tiêu bản hay lập trình phổ dụng,
- Quá tải và quá tải toán tử,
- Các hỗ trợ cho đa luồng, đa nhiệm và mạng.
Bạn muốn tìm hiểu thêm thật nhiều các ngôn ngữ lập trình bạn có thể tham khảo trang web của chúng tôi!