Series tự học C/C++ cực chi tiết và dễ hiểu cho người mới bắt đầu
Trước khi tìm hiểu về C++, chúng ta nên tìm hiểu về C, vì nó chính là cái gốc của C++, hay nói cách khác C++ phát triển và mở rộng dựa trên nó.
Nội dung chính
C
Ngôn ngữ C được phát triển vào năm 1972 bởi Dennis Ritchie tại phòng thí nghiệm của Bell Telephone, nó là ngôn ngữ chủ yếu dùng để lập trình hệ thống (ngôn ngữ để viết hệ điều hành). Và mục tiêu chính của Ritchie là tạo ra một ngôn ngữ tối giản, dễ biên dịch, cho phép truy cập một cách dễ dàng vào bộ nhớ, tạo ra các dòng code hiệu quả và độc lập (không phụ thuộc vào các chương trình khác). Đối với ngôn ngữ cấp cao, nó được thiết kế để cung cấp cho lập trình viên nhiều quyền kiểm soát, trong khi vẫn khuyến khích tính độc lập của chương trình (nghĩa là code sẽ không cần phải viết lại cho mỗi nền tảng khác nhau).
Vào năm 1973, C đã hoạt động một cách hiệu quả và linh hoạt đến nổi mà Ritchie và Ken Thompson đã viết lại hầu hết hệ điều hành Unix bằng C. Không giống như lắp ráp, sản xuất các chương trình chỉ có thể chạy trên các CPU cụ thể, C còn có tính di động tuyệt vời, cho phép Unix dễ dàng biên dịch lại trên nhiều loại máy tính khác nhau và chạy khá nhanh.
Năm 1983, Viện Tiêu chuẩn Quốc gia Hoa Kỳ(American National Standards Institute) (ANSI) đã thành lập một ủy ban để thiết lập một số tiêu chuẩn chính thức cho C. Năm 1989, họ đã hoàn thành và phát hành tiêu chuẩn C89, được gọi là ANSI C.
Vào năm 1990, Tổ chức Tiêu chuẩn Quốc tế (ISO) đã thông qua ANSI C (với một vài sửa đổi nhỏ). Phiên bản C này được gọi là C90.
Năm 1999, ủy ban ANSI đã phát hành phiên bản mới của C có tên C99. Nó đã áp dụng nhiều tính năng vào compilers dưới dạng các phần mở rộng hoặc đã được triển khai trong C ++. Và thế là C++ ra đời.
C++
C ++ được phát triển bởi Bjarne Stroustrup tại Bell Labs, nó có thể hiểu như một phần mở rộng của C, bắt đầu từ năm 1979. C ++ bổ sung nhiều tính năng mới cho ngôn ngữ C, và có lẽ nó được coi là thay thế cho C. Thực chất thì C ++ nổi tiếng và được dùng nhiều là vì nó là một ngôn ngữ hướng đối tượng. Về phần đối tượng là gì và nó khác với các phương pháp lập trình truyền thống như thế nào, chúng tôi sẽ trình bày về điều đó trong chương sau trong serise tự học C++ này. (Lập trình hướng đối tượng cơ bản).
Và đến năm 1998 thì C ++ đã được tiêu chuẩn hóa bởi ủy ban ISO (điều này có nghĩa là ủy ban ISO đã phê chuẩn tài liệu mô tả của ngôn ngữ C ++, để giúp đảm bảo tất cả các compilers tuân thủ cùng một bộ tiêu chuẩn). Một bản cập nhật này đã được phát hành vào năm 2003 (được gọi là C ++ 03).
Ba bản cập nhật lớn cho ngôn ngữ C ++ là: C ++ 11, C ++ 14 và C ++ 17 và được phê chuẩn vào năm 2011, 2014 và 2017, cứ mỗi lần cập nhật là mỗi lần thêm chức năng mới. Đặc biệt, C ++ 11 đã bổ sung một số lượng lớn các khả năng mới và tại thời điểm này được coi là một nền tảng cơ sở mới. C ++ 20 đang được hoạt động và hứa hẹn sẽ mang đến nhiều khả năng mới hơn nữa. Cuối cùng thì cứ 3 năm thì C++ sẽ được nâng cấp và cập nhật một lần.
Triết lý cốt lõi của C và C ++
Triết lý cơ bản của C và C ++ có thể được tóm tắt là tin tưởng vào lập trình viên – điều này thật tuyệt vời và nguy hiểm. C ++ được thiết kế để cho phép lập trình viên với một mức độ nào đó có thể tự do làm những gì họ muốn. Và cũng có khá nhiều cạm bẫy mà các lập trình viên mới có khả năng sẽ rơi vào nếu không biết, khi tự do code chương trình, Nói cách khác đó gọi là BUG. Đây là một trong những lý do chính tại sao bạn nên hiểu và biết thật rõ những gì bạn đang làm trong C / C ++ cũng quan trọng như biết bạn nên làm gì.
Và nó cũng chính là lý do chính mà cafedev tạo ra serise tự học C++ này cho các bạn.
Lưu ý nhỏ: Với serise tự học trên, hầu như các ví dụ demo đều là tiếng anh hết nha các bạn, Code mà dùng Tiếng Việt thì hơi bị chuối và không thể chấp nhận được. Đi làm sẽ không ai dùng Tiếng Việt khi code cả.
Học C++ làm được gì?
C ++ khá vượt trội trong các chương trình cần hiệu suất cao và kiểm soát chính xác bộ nhớ và các tài nguyên khác. Dưới đây là một số ứng dụng phổ biến rất có thể sẽ được viết bằng C ++:
- Video games
- Các hệ thống được vận hành trong thời gian thực (ví dụ: Các hệ thống vận chuyển, sản xuất, v.v.)
- Các ứng dụng tài chính hiệu suất cao (ví dụ: Các giao dịch tần suất cao)
- Ứng dụng đồ họa và mô phỏng
- Ứng dụng văn phòng
- Phần mềm nhúng
- Xử lý âm thanh và video