1. Explain how enumerations work.
2. Describe the three problems that unscoped enumerations can cause.
(1) An enumeration is a data type consisting of integral constants that the user defines. An enumeration is defined by the term enum. Enum is a user-defined data type that consists of a set of fixed constants, also known as integral constants. The enum keyword in the C++ programming language is used to specify an enumeration. Enums can be used to express a set of directions and days because they are implicitly final and static. To make code easier to maintain and read, the enum data type is used to give names to constants or a defined set of values. This speeds up the coding process.
(2)
Unscoped enumeration type values can be implicitly converted to integral types. If the underlying type isn't fixed, the value is converted to the first type in the list below that can hold the complete value range: long, unsigned long, long long, or unsigned long long. int, unsigned int, long, unsigned long, long long, or unsigned long long. higher conversion rank extended integer types The values can be translated to their underlying type (preferred in overload resolution) and then promoted if the underlying type is fixed.
Despite the fact that the conversion from an out-of-range to an enumeration without a fixed underlying type is now considered undefined behavior, no compiler presently performs the necessary diagnostic in constant evaluation.
An unscoped enumeration's name may be omitted; such a declaration only takes the enumerators into the enclosing scope.
enum{ a, b, c =0, d = a +2};// defines a = 0, b = 1, c = 0, d = 2
Comments
Leave a comment