Trong bài này, bạn sẽ học cách làm việc với phép liệt kê (enum). Ngoài ra, bạn sẽ tìm hiểu nơi enums thường được sử dụng trong lập trình C ++.
Liệt kê là kiểu dữ liệu do người dùng định nghĩa bao gồm các hằng số tích phân. Để xác định một kiểu liệt kê, từ khóa enum được sử dụng.
mùa enum (xuân, hạ, thu, đông);
Ở đây, tên của phép liệt kê là mùa.
Và, mùa xuân, mùa hè và mùa đông là các giá trị của loại mùa.
Theo mặc định, mùa xuân là 0, mùa hè là 1, v.v. Bạn có thể thay đổi giá trị mặc định của một phần tử enum trong khi khai báo (nếu cần).
enum season (mùa xuân = 0, mùa hè = 4, mùa thu = 8, mùa đông = 12);
Khai báo kiểu được liệt kê
Khi bạn tạo kiểu liệt kê, chỉ bản thiết kế cho biến được tạo. Đây là cách bạn có thể tạo các biến kiểu enum.
enum boolean (false, true); // kiểm tra bên trong hàm enum boolean;
Tại đây, một kiểu kiểm tra biến enum boolean
được tạo ra.
Đây là một cách khác để khai báo cùng một biến kiểm tra bằng cách sử dụng cú pháp khác nhau.
enum boolean (false, true) kiểm tra;
Ví dụ 1: Kiểu liệt kê
#include using namespace std; enum week ( Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ); int main() ( week today; today = Wednesday; cout << "Day " << today+1; return 0; )
Đầu ra
Ngày 4
Ví dụ 2: Thay đổi giá trị mặc định của Enums
#include using namespace std; enum seasons ( spring = 34, summer = 4, autumn = 9, winter = 32); int main() ( seasons s; s = summer; cout << "Summer = " << s << endl; return 0; )
Đầu ra
Mùa hè = 4
Tại sao enums được sử dụng trong lập trình C ++?
Một biến enum chỉ nhận một giá trị trong số nhiều giá trị có thể có. Ví dụ để chứng minh điều đó,
#include using namespace std; enum suit ( club = 0, diamonds = 10, hearts = 20, spades = 3 ) card; int main() ( card = club; cout << "Size of enum variable " << sizeof(card) << " bytes."; return 0; )
Đầu ra
Kích thước của biến enum 4 byte.
Đó là vì kích thước của một số nguyên là 4 byte;
Điều này làm cho enum trở thành một lựa chọn tốt để làm việc với các cờ.
Bạn có thể hoàn thành nhiệm vụ tương tự bằng cách sử dụng cấu trúc C ++. Tuy nhiên, làm việc với enums mang lại cho bạn hiệu quả cùng với sự linh hoạt.
Làm thế nào để sử dụng enum cho cờ?
Chúng ta hãy lấy một ví dụ,
enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button;
Giả sử bạn đang thiết kế một nút cho ứng dụng Windows. Bạn có thể đặt cờ ITALICS, BOLD và UNDERLINE để làm việc với văn bản.
Có một lý do tại sao tất cả các hằng số tích phân là lũy thừa của 2 trong mã giả trên.
// Trong ITALICS nhị phân = 00000001 BOLD = 00000010 UNDERLINE = 00000100
Vì, hằng số tích phân là lũy thừa của 2, bạn có thể kết hợp hai hoặc nhiều cờ cùng một lúc mà không chồng chéo bằng cách sử dụng bitwise OR | nhà điều hành. Điều này cho phép bạn chọn hai hoặc nhiều cờ cùng một lúc. Ví dụ,
#include using namespace std; enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 cout << myDesign; return 0; )
Đầu ra
5
Khi đầu ra là 5, bạn luôn biết rằng chữ in đậm và gạch chân được sử dụng.
Ngoài ra, bạn có thể thêm cờ theo yêu cầu của mình.
if (myDesign & ITALICS) (// mã in nghiêng)
Ở đây, chúng tôi đã thêm chữ in nghiêng vào thiết kế của mình. Lưu ý, chỉ mã cho chữ nghiêng được viết bên trong câu lệnh if.
Bạn có thể hoàn thành hầu hết mọi thứ trong lập trình C ++ mà không cần sử dụng phép liệt kê. Tuy nhiên, chúng có thể khá tiện dụng trong một số trường hợp nhất định. Đó là điều phân biệt những lập trình viên giỏi với những lập trình viên giỏi.