Kiedy używać typu wyliczeniowego enum ?

0

Chciałem stworzyć przykładowy program z tym typem, ale nie działa:

#include <iostream>

using namespace std;
enum akcja{dodawanie, odejmowanie};

float funkcja(akcja nazwa,float a, float b)
{
    if(nazwa == dodawanie)
    {
        return a + b;
    }
    if(nazwa == odejmowanie)
    {
        return a - b;
    }
}

int main()
{
    float pierwsza = 3, druga = 4;
    enum akcja{dodawanie, odejmowanie};
    cout << funkcja(dodawanie,pierwsza,druga);

    return 0;
}


 
0

Nie działa boś nie doczytał jak się używa...
http://ideone.com/XC86Sb

#include <iostream>
 
using namespace std;
enum akcja{dodawanie, odejmowanie};
 
float funkcja(akcja nazwa,float a, float b)
{
    if(nazwa == dodawanie)
    {
        return a + b;
    }
    if(nazwa == odejmowanie)
    {
        return a - b;
    }
}
 
int main()
{
    float pierwsza = 3, druga = 4;
    cout << funkcja(dodawanie,pierwsza,druga);
 
    return 0;
}
0

Nie za bardzo wiem co zmieniłeś, tylko tyle, że w mainie nie mam deklaracji enum ?

0

To co wrzuciłeś to nie deklaracja, tylko definicja. Przesłaniasz w main enum o tej samej nazwie.

Unscoped enum mozna zadeklarować tylko wtedy, gdy explicit poda się wewnętrzny typ, np:

enum foo : int;

Scoped enum można zadeklarować z implicit (int) wewętrznym typem:

enum class foo;

1 użytkowników online, w tym zalogowanych: 0, gości: 1