[noob][c++] what is enum and how do I use it?

what is enum and how do I use it?
TroudeloupAsked:
Who is Participating?
 
Jaime OlivaresConnect With a Mentor Software ArchitectCommented:
yes, you can't do it

and

yes, you don't need the quotes
0
 
Jaime OlivaresConnect With a Mentor Software ArchitectCommented:
enum is an integral data type that admit just a limited collection of values, each value has a name, asociated with a the itself.
Have a look to this tutorial:
http://www.cprogramming.com/tutorial/enum.html
0
 
ozoConnect With a Mentor Commented:
6.7.2.2 Enumeration specifiers
Syntax
1 enum-specifier:
enum identifieropt { enumerator-list }
enum identifieropt { enumerator-list , }
enum identifier
enumerator-list:
enumerator
enumerator-list , enumerator
enumerator:
enumeration-constant
enumeration-constant = constant-expression
Constraints
2 The expression that defines the value of an enumeration constant shall be an integer
constant expression that has a value representable as an int.
Semantics
3 The identifiers in an enumerator list are declared as constants that have type int and
may appear wherever such are permitted.107) An enumerator with = defines its
enumeration constant as the value of the constant expression. If the first enumerator has
no =, the value of its enumeration constant is 0. Each subsequent enumerator with no =
defines its enumeration constant as the value of the constant expression obtained by
adding 1 to the value of the previous enumeration constant. (The use of enumerators with
= may produce enumeration constants with values that duplicate other values in the same
enumeration.) The enumerators of an enumeration are also known as its members.
4 Each enumerated type shall be compatible with char, a signed integer type, or an
unsigned integer type. The choice of type is implementation-defined,108) but shall be
capable of representing the values of all the members of the enumeration. The
enumerated type is incomplete until after the } that terminates the list of enumerator
declarations.
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

 
TroudeloupAuthor Commented:
can you show me a small piece of code?  (as small as possible, like, 3 values.)
0
 
TroudeloupAuthor Commented:
#include <iostream>
using namespace std;
 
enum e_usflcnst{
      CATLIFE_FACTOR = 7
};
 
int main()
{
      int age;
      cout << "Enter your age: ";
      cin >> age;
      age /= CATLIFE_FACTOR;
      cout << "If you were cat, you would be " << age << endl;
}







this makes sense,

but what I don't undersrtand it,  why not just use a variable for the factor?

also, what role does e_usflcnst  play here?
0
 
Jaime OlivaresConnect With a Mentor Software ArchitectCommented:
little example:

enum rainbowcolors { red, orange, yellow, green,  blue, indigo, violet  }

enum rainbowcolors trafficlights = red;
0
 
TroudeloupAuthor Commented:
i don't understand,

I get it that raidbowcolors is a enum type (just like int and double, it's a type of variable ) with elements (colors)


but then how are you using it?
0
 
Jaime OlivaresConnect With a Mentor Software ArchitectCommented:
is like integers, but you cannot assign a value different that those from the list.

you will find in some typical blocks like this:

switch (trafficlights)
{
      case orange:
            cout << "careful!";
           break;
   case green:
        cout << "pass";
        break;
   case red:
       cout << "STOP";
       break;
    default:
      cout << "system malfunction!";
}


}
0
 
TroudeloupAuthor Commented:
is it like a way to use strings without having to use string variables?



so a type rainbow can have only those variants of colors , can I alter rainbow afterwards?
0
 
Jaime OlivaresConnect With a Mentor Software ArchitectCommented:
>>is it like a way to use strings without having to use string variables?
yes, it is more verbose than using 1 for orange, 2 for green, and 3 for red

>>so a type rainbow can have only those variants of colors , can I alter rainbow afterwards
no, you cannot
0
 
TroudeloupAuthor Commented:
also, I have to assign only those elements I already define in the enum type right?

for instance I can't do


rainbow trafficlights = silver



also, I don't need to quote colors?
0
 
TroudeloupAuthor Commented:
thank you all SO much !
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.