Trang Chủ Tài chính Cá nhân Mạnh mẽ Typed Enumerations trong C + + - núm vú

Mạnh mẽ Typed Enumerations trong C + + - núm vú

Video: THAY TÔI YÊU CÔ ẤY (ĐNSTĐ) | OFFICIAL MV 4K | THANH HƯNG 2025

Video: THAY TÔI YÊU CÔ ẤY (ĐNSTĐ) | OFFICIAL MV 4K | THANH HƯNG 2025
Anonim

Lập trình là tất cả về tính dễ đọc. Thật khó để viết và duy trì một chương trình mà bạn không thể đọc được (thực sự là không thể). Một phần của việc đọc một danh sách mã nguồn là hiểu những gì các con số được sử dụng trong chương trình đại diện. Sự trợ giúp cơ bản nhất mà C ++ cung cấp là phổ biến ở #define, như trong ví dụ sau đây:

#define PI 3. 141592653589793

Giải pháp này không quan trọng đối với các giá trị cá nhân, mặc dù nó # xác định cơ chế không phải là (nói đúng) một phần của C / C ++ vì bộ tiền xử lý chạy trước trình biên dịch. Để đáp lại điều đó, C ++ 2011 giới thiệu một biểu thức biểu thức hằng

constexpr long double PI = 3. 141592653589793;

Từ khoá constexpr đưa các hằng số vào lều C ++. PI này có một kiểu thực, giống như các biến C ++ khác. C ++ có thể tạo ra các thông báo lỗi với PI có ý nghĩa hơn nhiều so với các liên quan đến 3. 14159.

Các biểu thức liên tục là tốt đối với các giá trị hằng số riêng lẻ, nhưng các hằng số thường đại diện các tập hợp các sự kiện chứ không phải các hằng tự nhiên, như trong ví dụ sau:

#define DC_OR_TERRITORY 0 #define ALABAMA 1 #define ALASKA 2 #define ARKANSAS 3 // … và như vậy …

Có lẽ các hằng số này đang được sử dụng để xác định các trạng thái, có lẽ được sử dụng như một chỉ mục vào một mảng các đối tượng trạng thái hoặc như một giá trị trong một cơ sở dữ liệu ở đâu đó.

C + + từ lâu đã có một cơ chế cải tiến để xác định các loại hằng số này - đếm:

enum STATE {DC_OR_TERRITORY, // nhận được 0 ALABAMA, // được 1 ALASKA, // được 2 ARKANSAS, // … và Sớm…};

Từ khóa enum giới thiệu một dãy các hằng được gọi là "liệt kê". Trong trường hợp này, điều tra mang tên STATE. Mỗi phần của liệt kê này được gán giá trị bắt đầu từ 0 và tăng tuần tự bằng 1, do đó DC_OR_TERRITORY được định nghĩa là 0, ALABAMA được định nghĩa là 1, v.v. Bạn có thể ghi đè lên trình tự gia tăng này bằng cách sử dụng lệnh gán như sau:

enum STATE (DC, TERRITORY = 0, ALABAMA, ALASKA, // … và như vậy …};

Phiên bản này của STATE định nghĩa một phần tử DC, được cho giá trị 0. Sau đó định nghĩa một phần tử mới TERRITORY, cũng được gán giá trị 0. ALABAMA chọn với 1, giống như trước.

Trong thực tế, lập trình có thể sử dụng liệt kê để viết mã khá dễ đọc như sau:

double taxRate (STATE s) {return taxRatesByState [s];}

Vấn đề duy nhất với cách tiếp cận này là liệt kê này không tạo ra một loại mới (như bạn nghĩ).Trong thực tế, theo tiêu chuẩn, STATE chỉ là một tên khác cho int - và các hằng số ALABAMA, ALASKA, vân vân là tất cả các kiểu const int.

trình biên dịch gcc thực sự cung cấp một enum tuyên bố theo cách này một chút quyền lực hơn đơn giản gọi nó là một hình thức int. Bạn thực sự có thể quá tải các chức năng dựa trên một loại enum:

void fn (STATE s); void fn (int n); fn (ALASKA); // kích hoạt fn (STATE)

Tiêu chuẩn năm 2011 cho phép lập trình tạo một kiểu hoàn toàn mới bằng cách sử dụng từ khóa enum. Vì người sáng tạo của tiêu chuẩn mới không muốn phá vỡ mã hiện tại, tiêu chuẩn yêu cầu thêm một từ khoá phụ để xác định một kiểu điều tra, như trong ví dụ sau:

enum class STATE (DC, TERRITORY = 0, ALABAMA, ALASKA, // … và như vậy …};

Một lớp điều tra bây giờ là một loại quy mô đầy đủ như bất kỳ lớp người dùng định nghĩa khác. Những điều sau đây thậm chí không hợp pháp nữa vì hai lý do:

int s = ALASKA;

Trước tiên, ALASKA không đổi chỉ được định nghĩa trong không gian tên STATE. Do đó, tên của hằng là STATE:: ALASKA. Thứ hai, loại không phải là int nhưng STATE. Bạn không thể gán một giá trị của kiểu STATE thành một int.

STATE s = STATE:: ALASKA;

Lập trình viên có thể tái tạo một STATE vào một int nhưng cô ấy phải làm như vậy rõ ràng -chuyển đổi rõ ràng không cắt nó với các lớp đếm:

int n = (int) STATE:: ALASKA;

Loại enum mới này cũng có thể dựa trên một trong số các loại số đếm khác ngoài chỉ là int:

enum class STATE: char {DC, // … phần còn lại của khai báo giống
Mạnh mẽ Typed Enumerations trong C + + - núm vú

Lựa chọn của người biên tập

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Làm thế nào để Lưu tệp vào OneDrive từ iPad của bạn - núm vú

Chia sẻ là chăm sóc và bạn có thể lưu tệp Word, Excel hoặc PowerPoint vào iPad hoặc máy tính để bàn của bạn trực tiếp vào thư mục OneDrive. Sau khi tệp tin trên OneDrive, những người khác có quyền truy cập vào thư mục trên OneDrive có thể mở tệp. Họ có thể mở nó trong Văn phòng cho ứng dụng iPad, Office ...

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Làm thế nào để liên kết đến một tập tin cục bộ trong Office 2011 for Mac - núm vú

Một trong các công cụ hữu ích nhất trong Office 2011 cho mac là khả năng tạo siêu liên kết đến bất cứ đâu. Bạn có thể liên kết đến bất kỳ tập tin nào trên máy tính của bạn; những tập tin này là các tập tin địa phương. Để kết nối với các tệp cục bộ, bạn có thể sử dụng hai loại liên kết: Tuyệt đối: Loại liên kết này có chứa ...

Cách đăng nhập vào OneDrive từ phần mềm

Cách đăng nhập vào OneDrive từ phần mềm

OneDrive là một thành phần của Office 365, Dịch vụ trực tuyến của Microsoft. Trước khi bạn có thể lưu trữ, chia sẻ, hoặc đồng chỉnh sửa các tập tin trên OneDrive từ iPad, bạn phải đăng nhập vào OneDrive. Đọc tiếp để tìm hiểu cách đăng nhập từ Office cho iPad và đăng nhập từ một trình duyệt web. OneDrive ...

Lựa chọn của người biên tập

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Cách sắp xếp các tệp phương tiện cho WordPress Blog của bạn - núm vú

Nếu bạn đã chạy blog của bạn trong bất kỳ khoảng thời gian nào, bạn có thể dễ dàng quên những tệp bạn đã tải lên bằng trình tải lên WordPress. Thư viện Truyền thông WordPress giúp bạn dễ dàng và dễ dàng khám phá những tệp nào trong thư mục Uploads của bạn. Để tìm tệp hình ảnh, video hoặc âm thanh mà bạn đã tải lên bằng cách sử dụng <

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Làm thế nào để tối ưu Blog WordPress của bạn cho Công cụ Tìm kiếm - núm vú

Bạn muốn mọi người tìm thấy blog WordPress của bạn, nếu không bạn sẽ không dành thời gian để viết nó. WordPress được trang bị để tạo ra một môi trường thân thiện với các công cụ tìm kiếm, cho phép họ điều hướng dễ dàng thông qua các kho lưu trữ, các loại và các trang của bạn. WordPress cung cấp môi trường này với một cơ sở mã sạch, nội dung dễ dàng cập nhật thông qua ...

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Làm thế nào để Thực hiện Từ khoá trong trang WordPress của bạn với Permalinks

Cho thứ hạng cao hơn cho trang web WordPress của bạn, sử dụng các liên kết tùy chỉnh với từ khoá. Bằng cách sử dụng các liên kết tuỳ chỉnh, bạn tự động chèn từ khoá vào URL của các bài đăng và trang của bạn, cho phép các công cụ tìm kiếm bao gồm các bài đăng và trang đó trong cơ sở dữ liệu thông tin về những chủ đề đó. Nếu trang web của bạn được lưu trữ bởi nhà cung cấp có

Lựa chọn của người biên tập

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Làm thế nào để gửi chú thích để chia sẻ chúng trong OneNote 2013 - núm vú

Một trong những phương pháp đơn giản chia sẻ một ghi chú với OneNote 2013 bằng cách gửi nó dưới dạng tệp tin tới người nhận e-mail hoặc thậm chí với Microsoft Word hoặc blog của bạn. Để gửi lưu ý hiện tại dưới dạng tệp tin, hãy làm theo các bước sau: Mở ghi chú mà bạn muốn chia sẻ trong OneNote 2013 và chọn <...

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

Làm thế nào để Đồng bộ hóa Ghi chú trong OneNote 2013 - núm vú

OneNote 2013 khoảng cách bản thân từ khái niệm toàn bộ các tệp lưu thủ công trong lợi của đồng bộ hóa chúng. Bạn có thể đồng bộ tập tin tự động hoặc thủ công. Điều này cho phép bạn tự do khi quản lý các tệp của mình. Làm thế nào để đồng bộ tự động trong OneNote OneNote tự động lưu các ghi chú của bạn mỗi khi bạn thực hiện bất kỳ thay đổi ở tất cả để một máy tính xách tay, phần, ...

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

Cách Quản lý Máy tính xách tay OneNote 2013 với SkyDrive - núm vú

SkyDrive có thể truy cập qua đám mây, 't có một ứng dụng SkyDrive được cài đặt trên thiết bị. Điều này giúp bạn dễ dàng quản lý máy tính xách tay OneNote 2013 từ bất kỳ thiết bị nào có truy cập internet. Cách quản lý máy tính xách tay với SkyDrive trên web Bạn có thể truy cập dịch vụ từ bất cứ thiết bị nào bạn đang sử dụng miễn là nó hỗ trợ