Enumeration
Introduction
In C++, an enumeration, also known as enumerated type, is a user-defined data type that consists of a set of named integer constants. These constants are essentially representative names assigned to integer values.
Declaration:
- The enum keyword is used to declare an enumeration.
- You list the constant names separated by commas, optionally enclosed in curly braces.
- By default, constants start with a value of 0 and increment by 1 for each subsequent one.
- You can explicitly assign specific integer values to individual constants.
Example 1:
#include <iostream> #include <string> #include <cstring> #include <algorithm> using namespace std; enum days {sat = 1, sun, mon, tue, wed, thu, fri}; int main() { string d[7] = {"sat", "sun", "mon", "tue", "wed", "thu", "fri"}; days m[7] = {sat, sun, mon, tue, wed, thu, fri}; for (size_t i = 0; i < 7; i++) { cout << m[i] << " - " << d[i] << endl; } return 0; }
Enumeration days:
- Declares an enumeration named days to represent the days of the week.
- Assigns values to each day: sat = 1, sun, mon, etc. (subsequent days get implicit values incremented from the previous one).
String Array d:
- Creates an array of strings named d with a size of 7, holding the full day names (“sat”, “sun”, …, “fri”).
Enumeration Array m:
- Creates an array of enumeration values named m with a size of 7, containing the day enumerations (sat, sun, …, fri).
for Loop:
- Iterates through the elements of both d and m using a single index i.
- For each iteration:
– Prints the current enumeration value from m[i] followed by a hyphen (“-“).
– Prints the corresponding day name from d[i] on the same line.
Example 2:
#include <iostream> #include <string> #include <cstring> #include <algorithm> using namespace std; string da[7] = {"sat", "sun", "mon", "tue", "wed", "thu", "fri"}; enum Days {sat = 1, sun, mon, tue, wed, thu, fri}; class week { Days d[7]; public: void setday(Days w[]) { for (size_t i = 0; i < 7; i++) d[i] = w[i]; } void p() { for (size_t i = 0; i < 7; i++) cout << "The number of day " << da[i] << " = " << d[i] << endl; } }; int main() { Days d[7] = {sat, sun, mon, tue, wed, thu, fri}; week g; g.setday(d); g.p(); return 0; }
Array da:
- Declares a global string array da of size 7, storing the full day names (“sat”, “sun”, …, “fri”).
Enumeration Days:
- Defines an enumeration named Days to represent the days of the week with integer values:
– sat = 1
– sun (implicitly 2)
– mon (implicitly 3)
– …
– fri (implicitly 7)
Class week:
- Represents a “week” concept.
– Member variable:
* d is an array of Days enumeration type, holding the numerical day values for a week (e.g., sat, sun, …).
– Member methods:
* setday(Days w[]): Takes an array of Days enumeration values as input and assigns them to the d member array, copying the day values into the object.
* p(): Prints the day names and their corresponding numerical values from the d array. It iterates through the array, accessing both the current da string and the d value at the same index to print the pair.
main Function:
- Creates an array d of Days type and initializes it with sat, sun, …, fri.
- Instantiates a week object named g.
- Calls the setday method of g to pass the d array (containing the day values) to the object.
- Calls the p method of g, which prints the day information in the format “The number of day <day name> = <day value>”.
The code demonstrates the use of enumerations and classes to represent and manage day-of-the-week information in C++.