Get the App
SLTechnology News&Howtos  ›  Internet Technology  › 

Why is C++ enumerated class ​ better than ordinary enumerated types?

Shulou Source: shulou.com Published: 2022-06-01 19:20:13 09月30日 Update

This article mainly introduces "Why C++ enumerated classes are better than ordinary enumerated types". In daily operations, I believe many people have doubts about why C++ enumerated classes are better than ordinary enumerated types. I have consulted all kinds of data and sorted out simple and easy-to-use methods of operation. I hope it will be helpful to answer the question "Why C++ enumerated classes are better than ordinary enumerated types". Next, please follow the editor to study!

Enum.3: enumerated classes are better than normal enumerated types

Reason (reason)

Minimize accidents: classic enumeration types are too easy to convert to integers.

Example (sample)

Void Print_color (int color)

Enum Web_color {red = 0xFF0000, green = 0x00FF00, blue = 0x0000FF}

Enum Product_info {red = 0, purple = 1, blue = 2}

Web_color webby = Web_color::blue

/ / Clearly at least one of these calls is buggy.

Print_color (webby)

Print_color (Product_info::blue)

Instead use an enum class:

When using the enumeration class:

Void Print_color (int color)

Enum class Web_color {red = 0xFF0000, green = 0x00FF00, blue = 0x0000FF}

Enum class Product_info {red = 0, purple = 1, blue = 2}

Web_color webby = Web_color::blue

Print_color (webby); / / Error: cannot convert Web_color to int.

Print_color (Product_info::red); / / Error: cannot convert Product_info to int.

Enforcement (sample)

(simple) warns all enumeration definitions other than enumerated classes.

At this point, the study of why C++ enumerated classes are better than ordinary enumerated types is over. I hope I can solve your doubts. The collocation of theory and practice can better help you learn, go and try it! If you want to continue to learn more related knowledge, please continue to follow the website, the editor will continue to work hard to bring you more practical articles!

Tags: Type ordinary Clearing Learning more examples help practicality accident next cause Integer article method time theory knowledge article classic website Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Shulou Information Shulou Tech Info Shulou Technology vpn MariaDB