Computer >> Máy Tính >  >> Lập trình >> C ++

Những thay đổi mới được giới thiệu trong C ++ 11 là gì?

C ++ 11 là một phiên bản của ngôn ngữ C ++ tiêu chuẩn. Nó đã được Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) phê duyệt vào ngày 12 tháng 8 năm 2011, sau đó là C ++ 14 và C ++ 17. C ++ 11 thực hiện một số bổ sung cho ngôn ngữ cốt lõi.

Có một số thay đổi mới được giới thiệu trong C ++ 11 -

  • nullptr - Trong nullptr trước đó, số 0 từng là giá trị và nó có một nhược điểm là chuyển đổi ngầm thành giá trị tích phân. Chữ con trỏ null được đại diện bởistd ::nullptr_t. Trong nullptr này, không có chuyển đổi ngầm nào tồn tại.

  • Lambdas - Biểu thức lambda cho phép xác định cục bộ các hàm. Các hàm ẩn danh được gọi là lambda. Chúng ta có thể sử dụng biểu thức lambda ở bất cứ nơi nào mong đợi đối tượng hàm std ::function.

  • Con trỏ thông minh - Con trỏ thông minh auto_ptr là con trỏ thông minh duy nhất và bây giờ nó không được dùng nữa. Có ba con trỏ thông minh khác được thêm vào trong C ++ 11, tức là shared_ptr, unique_ptr và yếu_ptr.

  • tự động - Trong các phiên bản trước, chúng ta phải chỉ định kiểu của đối tượng nhưng trong C ++ 11, không cần chỉ định kiểu, nghĩa là bạn có thể khai báo trực tiếp các biến mà không cần chỉ định kiểu của chúng.

  • Ghi đè và cuối cùng - Phiên bản C ++ 11 đã giới thiệu hai số nhận dạng đặc biệt mới, tức là ghi đè và cuối cùng. Ghi đè chỉ ra rằng phương thức được cho là ghi đè phương thức ảo trong lớp cơ sở. Mặt khác, final chỉ ra rằng lớp dẫn xuất không được ghi đè phương thức ảo.

  • Các chức năng đã xóa và mặc định - Các chức năng bị xóa rất hữu ích để ngăn chặn việc sao chép đối tượng. Để tắt tính năng sao chép, “=delete; " Được sử dụng. Hàm mặc định cung cấp lệnh cho trình biên dịch để tạo ra cài đặt mặc định của hàm và “=default;” được sử dụng cho các hàm mặc định.

  • Dựa trên phạm vi cho các vòng lặp - C ++ 11 đã giới thiệu các vòng lặp dựa trên phạm vi để lặp qua các tập hợp. Bây giờ, có thể lặp lại như các mảng C. Nó hỗ trợ mô hình ‘foreach’ lặp lại.

  • enums được đánh máy mạnh - Trong các điều tra viên truyền thống, họ thường xuất khẩu các điều tra viên của mình trong phạm vi xung quanh. Chúng được chỉ định là từ khóa "enum class". Họ không xuất điều tra viên của họ trong phạm vi xung quanh.

  • Static_assert và các đặc điểm kiểu - Nó thực hiện kiểm tra xác nhận tại thời điểm biên dịch. Nếu khẳng định là đúng, nó sẽ không hiển thị gì nếu không sẽ hiển thị một thông báo sai.

  • Các thuật toán C ++ mới - Thư viện chuẩn C ++ 11 đã giới thiệu các thuật toán mới với một số hoạt động như all_of (), any_of và none_of ().